vector
变长数组
push_back()
在vector后面添加元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using namespace std;
int main()
{
vector<int> v;
for(int i=0;i<5;++i)
{
v.push_back(i);//在v后面添加元素
}
for(int i=0;i<v.size();++i)
{
printf("%d ",v[i]);
}
}1
0 1 2 3 4
pop_back()
删除vector的尾元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using namespace std;
int main()
{
vector<int> v;
for(int i=0;i<5;++i)
{
v.push_back(i);
}
v.pop_back();//删除v的尾元素4
for(int i=0;i<v.size();++i)
{
printf("%d ",v[i]);
}
}1
0 1 2 3
size()
获得vector中元素的个数
clear()
清空vector中的所有元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using namespace std;
int main()
{
vector<int> v;
for(int i=0;i<5;++i)
v.push_back(i);
v.clear();
printf("v.size=%d\n",v.size());
//以下代码不会被执行,因为不满足循环判断条件
for(int i=0;i<v.size();++i)
printf("%d ",v[i]);
}1
v.size=0
insert()
insert(it,x)用来向vector的任意迭代器it处插入一个元素x
1
2
3
4
5
6
7
8
9
10
11
12
13
using namespace std;
int main()
{
vector<int> v;
for(int i=0;i<5;++i)
v.push_back(i);
v.insert(v.begin()+2,9);//将9插入到v[2]的位置
for(int i=0;i<v.size();++i)
printf("%d ",v[i]);
}1
0 1 9 2 3 4
erase()
删除单个元素
erase(it):删除迭代器为it处的元素
1
2
3
4
5
6
7
8
9
10
11
12
13
using namespace std;
int main()
{
vector<int> v;
for(int i=0;i<5;++i)
v.push_back(i);
v.erase(v.begin()+2);//删除下标为2的元素
for(int i=0;i<v.size();++i)
printf("%d ",v[i]);
}1
0 1 3 4
删除一个区间内的所有元素
erase(first,last)
1
2
3
4
5
6
7
8
9
10
11
12
13
using namespace std;
int main()
{
vector<int> v;
for(int i=0;i<5;++i)
v.push_back(i);
v.erase(v.begin()+2,v.begin()+4);//删除下标为2到4的元素
for(int i=0;i<v.size();++i)
printf("%d ",v[i]);
}1
0 1 4