C++ 容器
2016-03-22 23:41
405 查看
独创3S法(Six Step Solve)
1.名称
容器
2.概念
在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的对象,当然这是一个朴素的理解,这种“对象”还包含了一系列处理“其它对象”的方法,因为这些方法在程序的设计上会经常被用到,所以容器也体现了一个好处,就是“容器类是一种对特定代码重用问题的良好的解决方案。
3.通俗的理解
就相当于一种类,只不过这种类是专为数据的存放以及处理而准备,对数据有其独特的管理方法。4.存在的意义
以数组作为例子,在定义数组的时候往往需要指定其空间的大小,但如果在使用中用不了这么多或者不够用就会很为难,内存的利用效率就不高,而容器的存在就可以帮你处理这些细节上的问题,你也不会再纠结于定义一个数组时还要考虑多大。容器会自动为你申请内存和释放内存,并同时用自己最优化的算法来进行。5.使用的方法
举一个小例子看一下,其实发现如果不是特别较真的话,好好阅读MSDN中这些容器的相关元素的函数即可 #include <iostream>#include <vector>
using namespace std;
int main()
{
vector< int > num;
num.push_back( 50 );
num.insert(num.begin(), 10);
num.insert(num.end(), 20);
num.push_back( 60 );
num.push_back( 40 );
cout << num.size() << endl;
for(int i = 0; i < num.size(); i++)
cout << num[i] << " ";
cout << endl;
num.erase(num.begin());
cout << num.size() << endl;
for(int i = 0; i < num.size(); i++)
cout<< num[i] <<" ";
cout << endl;
return 0;
}
6.需要注意的问题
标准容器类 |
说明 |
顺序性容器 |
|
vector |
从后面快速的插入与删除,直接访问任何元素 |
deque |
从前面或后面快速的插入与删除,直接访问任何元素 |
list |
双链表,从任何地方快速插入与删除 |
关联容器 |
|
set |
快速查找,不允许重复值 |
multiset |
快速查找,允许重复值 |
map |
一对多映射,基于关键字快速查找,不允许重复值 |
multimap |
一对多映射,基于关键字快速查找,允许重复值 |
容器适配器 |
|
stack |
后进先出 |
queue |
先进先出 |
priority_queue |
最高优先级元素总是第一个出列 |
阅读更多
相关文章推荐
- C++容器 vector 最详细教程1 (包含程序源码)
- 【C++学习笔记】标准库容器Vector可变长度实现原理
- [C++ 从入门到放弃-09]C++STL之queue队列容器
- C++vector容器用法详解
- [C++ STL] 优先队列容器 priority_queue
- C++ STL 基础及应用(6) 容器
- c++ 标准库的各种容器(vector,deque,map,set,unordered_map,unordered_set,list)的性能考虑
- C++STL中vector容器的用法
- C++ STL之list容器的基本操作
- c++STL容器vector的复制
- C++学习总结——vector容器的实现
- 浅谈C++容器(三)
- c++ deque容器的特性(权哥)
- C++之容器
- C++ 容器及选用总结
- C++ STL — 第6章 STL容器(二)deque
- [C++再学习系列] 函数声明与STL容器构造
- c++容器(vector、list、deque)
- C++ 用set容器过滤插入到map容器中的元素
- C++顺序容器之list初探