C++编程题常用容器汇总

内容会持续更新,有错误的地方欢迎指正,谢谢!

STL的容器分为顺序容器和关联容器。容器适配器是对这两类容器进行包装得到的有更强约束力的容器。

容器适配器

stack

stack是一种容器适配器,常被用于先进后出、逆序输出的情景。stack没有迭代器,将特定的容器作为其底层,如deque,list,vector…

empty() //堆栈为空则返回真 
pop() //移除栈顶元素 
push() //在栈顶增加元素 
size() //返回栈中元素数目 
top() //返回栈顶元素
queue

queue也是容器适配器,但有迭代器

push(x)//将x压入队列的末端
pop()//弹出队列的第一个元素(队顶元素),注意此函数并不返回任何值
empty()//当队列为空时,返回true
size()//返回队列的长度
front()//返回第一个元素(队顶元素)
back()//返回最后被压入的元素(队尾元素)

顺序容器的通用概念

迭代器
迭代器的定义举例(以vector为例):vector<int>::iterator iter=vec.begin();
开始指针:vec.begin();
末尾指针:vec.end(); //指向最后一个元素的下一个位置
指向常量的开始指针: vec.cbegin(); //不能通过此指针修改所指的内容,但可通过其他方式。
指向常量的末尾指针: vec.cend();
元素的访问
下标访问: vec[1];
访问第一个元素: vec.front();
访问最后一个元素: vec.back();

顺序容器用法

vector
push_back() //在Vector最后添加一个元素 
empty() //Vector为空返回true
size() //返回Vector元素数量的大小 
front() //返回第一个元素
back() //返回最后一个元素
begin() //返回第一个元素的迭代器
end() //返回最后一个元素的下一个元素的迭代器
clear() //清空所有元素 
//从一个vector容器pre中拷贝其部分元素到新vector容器leftPre中
vector<int> leftPre(pre.begin()+1,pre.begin()+i+1);
vector<vector<int>> result;//用vector表示二维数组,该如何使用?请见下方:

vector<int> temp;//要声明一个一维vector<int>
temp.push_back(pNode->val);
result.push_back(temp);

//错误的用法:
result[row].push_back(pNode->val);//二维vector容器,不能这样用!

//正确的用法:
result[i][j]
deque
push_front(elem)//在头部插入一个数据
push_back(elem)//在尾部加入一个数据
pop_front()//删除头部数据
pop_back()//删除最后一个数据
empty() //如果队列空则返回真 
size() //返回队列中元素的个数
front() //返回第一个元素 
back() //返回最后一个元素
string

C++ string和’\0’没有半分钱的关系, 不会被截断。 string是个容器,所以,根本不用担心’\0’
比如:string str="abcd"; int length=str.size();其中,length就等于4,而不是5
一般通过索引来使用string。

关联容器的详情

http://blog.csdn.net/billcyj/article/details/78985895

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值