1,vectord的定义方式为:
vector</*数据类型*/>/*名称*/;
//比如:
vector<int>vec;
2,用push_back(/*元素*/)可以在动态数组最后插入一个新的元素,比如:
vector<int>vec;//目前:[]
vec.push_back(1);//目前:[1]
vec.push_back(2);//目前:[1,2]
vec.push_back(3);//目前:[1,2,3]
当然你如果想删除元素,可以使用pop_back()删除动态数组中最后一个元素。注意这里括号内不要加任何东西;注意!如果动态数组内已为空再使用pop_back会出错!
vector<int>vec;//目前:[]
vec.push_back(1);//目前:[1]
vec.push_back(2);//目前:[1,2]
vec.push_back(3);//目前:[1,2,3]
vec.pop_back();//目前:[1,2]
vec.pop_back();//目前:[1]
vec.pop_back();//目前:[]
vec.pop_back();//出错
3,访问动态数组的长度用:
/*数组名称*/.size()
比如:
vec.size();
4,访问动态数组中的某个元素跟普通的数组访问方式一样,比如:
vec[0]
但是需要注意不要超过数组大小范围。动态数组大小范围为:
vec.size()-1
5,输出动态数组里所有的数:
vector<int>cev;
for(int i=0;i<vec.size();i++)
{cout<<vec[i]<<" ";}
6,如果你想修改动态数组中的某个值也跟普通数组一样:
vector<int>vec;
vec.push_back(1);
vec.push_back(2);
vec[0]=2;
vec[1]=1;
7,动态数组清空所以数据且释放内存格式为:
vector</*数据类型*/>().swap(/*名称*/);
比如:
vector<int>().swap(vec);
8,可以使用/*名称*/.empty()来检测这个动态数组的大小是否为0;
9,动态数组可以整体赋值:
vector<int>vec1;
vector<int>vrc2;
vec1.push_back(1);
vec2.push_back(2);
vec2=vec1;
10,动态数组的排序需要使用迭代器
//全排序:
sort(vec.begin(),vec.end());
//排序前面3数:
sort(vec.begin(),vec.begin()+3);
11,vector数据类型也可以自定义:
struct Stu{
string name;
int score;
};
int main(){
victor<Stu>vec;
}
12,定义结构体数据类型对于动态数组的常见操作:
struct Stu{
string name;
int score;
};
int main(){
victor<Stu>vec;
Stu a;//定义学生a
a.name="abc";//赋值
a.score=100;
vec.push_back(a);//将a压入vec
vec.push_back({"abcd",90});//或者这样一部完成
}
13,将动态数组初始化一个数或数组大小:
//vector</*数组类型*/>/*数组名*/(/*大小*/,/*值*/);
vector<int>vec(100,0);//设置大小为100且所有数为0的动态数组