除了可以在 vector 对象的末端加入一个元素外,也可以用 insert() 函数在中间插入一个元素,也可以用 erase() 函数删除一个元素。
测试代码:
[C++] 纯文本查看 复制代码 #include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<char> v;
unsigned int i;
for (i = 0; i < 10; i++)
v.push_back('A' + i);
//输出 vector 对象中的初始内容
cout << "Size = " << v.size() << endl;
cout << "Original contents:\\n";
for (i = 0; i < v.size(); i++) cout << v[i] << " ";
cout << endl << endl;
vector<char>::iterator p = v.begin();
p += 2; //指向第 3 个元素
v.insert(p, 10, 'X');
//再输出对象中的内容
cout << "Size after insert = " << v.size() << endl;
cout << "Contents after insert:\\n";
for (i = 0; i < v.size(); i++) cout << v[i] << " ";
cout << endl << endl;
//删除一般元素
p = v.begin(); //再次调整迭代器到开始
p += 2; //指向第 3 个元素
v.erase(p, p+10); //删除接下来的 10 个元素
//输出删除操作之后对象中的内容
cout << "Size after erase = " << v.size() << endl;
cout << "Contents after erase:\\n";
for (i = 0; i < v.size(); i++) cout << v[i] << " ";
cout << endl;
return 0;
}
运行输出:Size = 10
Original contents:
A B C D E F G H I J
Size after insert = 20
Contents after insert:
A B X X X X X X X X X X C D E F G H I J
Size after erase = 10
Contents after erase:
A B C D E F G H I J |