C++ STL中删除vector中的元素

C++ STL中删除vector中的元素

除支持使用 push_back()函数在末尾插入元素外, vector 还支持使用 pop_bac()k 函数将末尾的元素
删除。使用 pop_back()将元素从 vector 中删除所需的时间是固定的,即不随 vector 存储的元素个数而
异。程序清单 17.6 演示了如何使用函数 pop_back()删除 vector 末尾的元素。

0: #include <iostream>
1: #include <vector>
2: using namespace std;
3:
4: template <typename T>
5: void DisplayVector(const vector<T>& inVec)
6: {
7: for (auto element = inVec.cbegin(); // auto and cbegin(): C++11
8: element != inVec.cend(); // cend() is new in C++11
9: ++ element )
10: cout << *element << ' ';
11:
12: cout << endl;
13: }
14:
15: int main ()
16: {
17: vector <int> integers;
18:
19: // Insert sample integers into the vector:
20: integers.push_back (50);
21: integers.push_back (1);
22: integers.push_back (987);
23: integers.push_back (1001);
24:
25: cout << "Vector contains " << integers.size () << " elements: ";
26: DisplayVector(integers);
27:
28: // Erase one element at the end
29: integers.pop_back ();
30:
31: cout << "After a call to pop_back()" << endl;
32: cout << "Vector contains " << integers.size () << " elements: ";
33: DisplayVector(integers);
34:
35: return 0;
36: }

输出:
Vector contains 4 elements: 50 1 987 1001
After a call to pop_back()
Vector contains 3 elements: 50 1 987
分析:
上述输出表明,第 29 行的 pop_back()函数将 vector 的最后一个元素删除,从而减少了 vector 包含
的元素数。第 32 行再次调用 size( ),以证明 vector 包含的元素少了一个,如输出所示。
在程序清单 17.3 中, DisplayVector( )只能接受整型 vector 作为参数,而在程序清单 17.6
中,它是个模板函数(第 4~13 行)。这有助于将该模板函数重用于浮点型 vector:

vector <float> vecFloats;
DisplayVector(vecFloats); // works, as a generic function

该模板函数接受任何类型的 vector 作为参数,只要该类型支持这样的运算符,即其返回
值可被 cout 理解。

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值