您的位置:首页 > 编程语言 > C语言/C++

C++primer笔记(21)

2015-10-25 19:03 295 查看
1:deque与vector比较:

a:vector只有push_back(n), deque有push_back(n)和push_front(n);

b:vector只有pop_back(), deque有pop_back(),和pop_front();

c:vector和deque都是顺序容器数组.

d:存在于std空间中,都有相应的头文件。

2:list

a:实例化list; list<int> a;

b:a.push_front(n) //从前面插入n; a.push_back(n)//从后面插入n;

c:list不是数组,不能使用下标,只能使用迭代器。std:list<int>::iteraor iter;

d:插入元素

a.insert(a.begin(), 10) // 在a.begin()处插入10.

a.insert(a.end(), 4, 20) //在a.end()处插入4个20.

a.insert(a.begin(), b.begin(), b.end()) // 在a.begin处插入从b.begin()到b.end()处所有的元素。3个iterator。

a.insert()才会返回迭代器,并指向添加的最后一个元素

e:/删除

a.erase(iterator)//删除迭代器指向的元素;

a.erase(a.begin(), iterator)// 从a.begin()到iterator。从处删,iterator处不删。

f:反转和排序

a.reverse();

a.sort();

3:map与multimap

a: map<int, string> a; multimap<int, string>ma;

b:a.insert(map<int, string>::value_type(1, "one")); //用value_type 变成一对

a.insert(make_pair(-1, "M one")); / /变成一对的方法 make_pair()

a.insert(pair<int ,string>(1, 'one')); //

a[10] = "one handuede"; //类似于数组,不能用于ma;

c: map<int, string>::iterator im;

im = a.begin();

cout<<im->first;

cout<< im->second.c_str();

d:查找和判断

对于multimap: im = ma.find(45);

if(im != ma.end())

size_t = ma.count(45); //查找结果的个数

e:删除

if(im.erase(45) >0)cout<<"删除成功" // 通过key(45)删除

iterator = im.found(45) ; im.erase(iterator); //通过迭代器删除
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: