您的位置:首页 > 其它

STL容器

2016-06-07 20:43 225 查看
一.顺序容器,关联容器通用(vector,deque,set,map):

1.构造

C c1;构造空的c1

C c1(c2);把c2拷到c1

C c(ite1,ite2);把迭代器[ite1,ite2)拷到c中

C c{a,b,c.....}用列表的方式构造c

2.赋值

c1=c2;用c1的元素替换c2的元素(长度也可能变化)

c={a,b,c.....}把c1的元素替换为{a,b,c......}

3.容器大小

c.size()C元素的数目

c.empty()C为空时返回true

4.获取首尾迭代器

c.begin()返回首个元素

c.end()返回最后一个元素的后一个位置的迭代器

二.顺序容器

1.String,Vector,deque

插入

c.push_back(t)在队尾添加一个元素t,添加队尾元素增加元素个数,可能让Vector重新分配就会使前面的迭代器失效,要注意。

c.insert(p,t)在迭代器p前面插入t,并返回t的迭代器

c.insert(p,n,t)在迭代器p前面插入n个t,返回新添的第一个元素的迭代器

c.insert(p,ite1,ite2)在迭代器p之前插入[ite1,ite2)的元素,并返回插入的第一个元素的迭代器

删除

c.pop_back()删除队尾元素

c.erase(p)删除迭代器p指向的元素,并返回指向下一个元素的迭代器

c.erase(ite1,ite2)删除[ite1,ite2)迭代器范围的元素,返回最后一个被删元素的迭代器

c.clear()把每个元素初始化

返回首尾元素

c.front()返回首个元素

c.back()返回最后一个元素

String的额外操作

str.find("test",i);从下标i开始,查找"test",如果找到,返回找到的第一个"test"的下标(注意不是迭代器)

transform(str.begin(),str.begin(),str.end(),::toupper);

transform(str.begin(),str.begin().str.end(),::tolower);

把str字符串转化成大/小写

deque的额外操作

deq.push_front()在头部加入一个元素

deq.pop_front()将第一个元素去除

2.set和map

注:set.begin()和set.end()返回的迭代器不能执行加减运算,只能++,和--;

set无下标操作,map有关键词下标操作

添加元素

c.insert(t)在关联容器中插入函数一个pair,first指向t,second是bool,表示插入是否成功

c.insert(ite1,ite2)在关联容器中插入[ite1,ite2)的值

删除元素

c.erase(k)删除关键字是k的所有元素

c.erase(p)删除迭代器p指定的元素
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: