C++抽象编程——STL(4)——vector中元素的插入和删除和赋值
我们上篇博文中主要提到了vector中的一些常见的方法,下面的代码中主要就vector中的方法进行编程实现:如果对一些方法的意义不明白就回头去看看我的上一篇文章:C++抽象编程——STL(4)——vector类
1.元素插入
#include <iostream>
#include <vector>
using namespace std;
void outputValue(vector<int> vec);/*输出当前vec中的值*/
int main() {
vector<int> vec; /*这个时候我们建立的是一个空的容器*/
vec.push_back(10);
vec.push_back(20);
vec.push_back(40);
cout << "插入前vector中的元素为" << endl;
outputValue(vec);
cout << endl;
/*vec的开始指针指向的是第一个元素,所以指针移动两位,指向第三个元素(下标为2)
*然后在这个元素的前面,注意是前面,插入一个元素。*/
vec.insert(vec.begin()+2,30);
cout << "插入30后vector中的元素为" << endl;
outputValue(vec);
cout <<endl;
/*这个时候我们建立另外一个vector,注意我们建立的方式*/
vector<int> vec1(8,88);
cout << "vec1的值为:" << endl; /*这个时候你看结果就应该猜到输出了,我就不
多说了*/
outputValue(vec1);
cout << endl;
/*我们再建立另外一个vector,注意我们建立的方式*/
vector<int> vec2(8);
cout << "vec2的值为:" << endl; /*这次你能猜到输出吗?看看结果,为什么都是
因为当你没说明值的时候是会被默认初始化的 */
outputValue(vec2);
cout << endl;
return 0;
}
void outputValue(vector<int> vec) {
for(int i = 0; i < vec.size(); i++){
cout << vec[i] << " " ;
}
}
这次的分析我就不写了,我的代码注释很详细了,结果如下:
2.删除元素
下面就看代码:
#include <iostream>
#include <vector>
using namespace std;
void outputValue(vector<int> vec);/*输出当前vec中的值*/
int main() {
vector<int> vec;
for(int i = 0; i < 10; i++ ) {
vec.push_back(i);
}
cout << "当前的vector的值为:" << endl;
outputValue(vec);
vec.erase(vec.begin()+2);
cout << "删除第3个元素后vector的值为:" << endl;
outputValue(vec);
cout << "删除第3和第6个元素之间的数后vector的值为:" << endl;
vec.erase(vec.begin()+2,vec.begin()+5);
outputValue(vec);
cout << "执行完clear方法后vector的长度为:" << endl;
vec.clear();
cout << vec.size() << endl;
return 0;
}
void outputValue(vector<int> vec) {
for(int i = 0; i < vec.size(); i++){
cout << vec[i] << " " ;
}
cout << endl;
}
结果如下;