vector容器类似数组
vector容器不能直接使用输出 只能使用数组遍历输出
需要使用<vector>头文件
赋值
void text01() {
vector<int> v1 = { 1,2,3,4,5 };
vector <char> v2 = { 'a','x','d','g' };
vector <double> v3 = { 1.2,2.3,3.3,5.4,6.7 };
vector <string>v4 = { "hello","world","love","china" };
cout << v1[0] << endl;
复制
void text02() {
vector<int>v1(10);// 定义一个含有10个整形变量,默认是0
cout << v1[1] << endl;
vector<int>v2(8, 8);//定义8个,默认是8
cout << v2[3] << endl;
vector<int>v3(v2);//v2赋值给v3
cout << v3[1] << endl;
vector<int>v4(v2.begin(), v2.begin() + 1);//v2begin到begin+1
cout << v4.size() << endl;
}
遍历
void text03() {//遍历
vector<int>v = { 1,2,3,4,5,6 };
cout << v.at(2) << endl;//下标
cout << v.front() << endl;//首
cout << v.back() << endl;//尾
for (auto i = v.begin(); i != v.end(); i++) {//迭代
cout << *i << " ";
}
cout << endl;
for (auto i = v.rbegin(); i != v.rend(); i++) {
cout << *i << " ";
}
cout << endl;
}
迭代器只能用end 不能用back
增加
void text04() {
vector<int>v = { 1,2 };
vector<int>v1 = { 100,200 };
v.push_back(333);//2后面添加
v.insert(v.begin(), 2);//前面插入2
v.insert(v.begin() + 1, 2, 4);//插入2个4
v.insert(v.begin() + 1, v1.begin(), v1.end());
for (auto i = v.begin(); i != v.end(); i++) {
cout << *i << " ";
}
cout << endl;
}
push_back最后添加
insert插入
删除
void text05() {
vector<int>v = { 1,2,3,4,5,6 };
//判断空
cout<<v.empty() << endl;
v.erase(v.begin()+2);//迭代器
v.erase(v.begin() + 1, v.begin() + 3);
v.pop_back();//删除最后一个
for (auto i = v.begin(); i != v.end(); i++) {
cout << *i << " ";
}
cout << endl;
v.clear();//清零
cout << v.empty() << endl;//1为空
for (auto i = v.begin(); i != v.end(); i++) {
cout << *i << " ";
}
cout << "1" << endl;
}
pop_back
erase
empty判断
clear
大小
void text06() {
vector<int>v = { 1,2,3,4,5 };
cout << v.size() << endl;
cout << v.capacity() << endl;//数组最大容纳
cout << v.max_size() << endl;//计算机
}
capacity数组最大容量
其他
void text07() {
vector<int>v;
v.assign(10, 2);//前10为2
//for (auto i = v.begin(); i != v.end(); i++) {
// cout << *i << " ";
//}
//cout << endl;
vector<int>v1 = { 1,2,3,4,5,6 };
vector<int>v2 = { 111,222,333 };
//v1.assign(v2.begin(), v2.end());//替换
v1.swap(v2);
for (auto i = v1.begin(); i != v1.end(); i++) {
cout << *i << " ";
}
cout << endl;
for (auto i = v2.begin(); i != v2.end(); i++) {
cout << *i << " ";
}
}