C++ STL中的map和vector
来源:互联网 发布:手机淘宝如何退保证金 编辑:程序博客网 时间:2024/06/04 19:42
一.STL
STL(Standard Template Library),即标准模板库,是C++的程序库。
STL的六大组件
- 容器(Container),是一种数据结构,如list,vector,deques,以模板类的方法提供。为了访问容器中的数据,可以使用容器类输出的迭代器。
- 迭代器(Iterator),提供访问容器中对象的方法。如,可以使用一对迭代器指定list或vector中的一定范围的对象。迭代器类似于一个指针,但迭代器也可以是那些定义了operator*()已经其他类似于指针的操作符方法的类对象。
- 算法(Algorithm),是用来操作容器中的数据的模板函数。如sort()排序函数,find()查找函数等。函数本身与操作的数据的结构和类型无关,因此可在从简单数组到高度复杂容器的数据结构都可使用。
- 仿函数(Function object),又称之为函数对象,是重载了()操作符的struct。
- 迭代适配器(Adapror)
- 空间配置器(allocator),主要工作包括 1.对象的创建与销毁 2.内存的获取与释放。
二.vector
vector是一种对象实体,又称之为容器,存储类型相同的元素,与数组的主要区别为它可以根据需要随时自动调整自身的大小以便存储元素。
在元素的输出上,可使用遍历器(迭代器)控制输出。向量元素的位置为遍历器,向量元素的位置也是一种数据结构,在向量中遍历器的类型为:vector< int >::iterator。遍历器也可在容器中前后移动。
向量基本操作
vector<int> a; //初始化a.size() //获取向量中元素个数a.empty() //判断向量是否为空a.clear() //清空向量中的元素a = b //将b向量复制到a向量中a.insert(a.begin(),1000); //将1000插入到向量a的起始位置a.insert(a.begin(),3,1000); //将1000分别插入到向量元素位置的0-2处(共3个元素)b.swap(a); //a向量与b向量进行交换
三.map
map容器提供的为键值对容器,每一对由关键字(key)和关键字的对应值组成。
插入:
map<int,string> ID_Name;ID_Name[2015] = "kalp";//ID_Name.insert(std::map<int,string>(2015,"kalp"));
取值
cout << ID_Name[2015].c_str() <<endl;//ID_Name.at(2015) = "kalp";
查找
std::map<int,string>::iterator it;it = ID_Name.find("kalp");
阅读全文
0 0
- C++ STL中的map和vector
- C++STL (vector,list,map)
- stl中的vector,list deque和map的区别
- C++STL库 vector map list 使用方法
- 【温故而知新】C和C++6:STL中的vector容器
- STL——vector和map
- STL中vector、list、deque和map
- C/C++--STL中list,vector,deque,map,set区别、联系和使用场景
- C/C++--STL中list,vector,deque,map,set区别、联系和使用场景
- c++stl中的map/multimap
- C++STL中的set容器和map容器
- C++STL中,map/multimap,set/multiset 和vector的排序
- STL:map, vector, list
- STL vector list map
- STL -- map--vector--排序
- stl,map,vector
- STL中的map和multimap
- STL中的map和multimap
- IO流(一)概述
- python学习笔记之011.py
- mysql 如何用一个表的字段填充另一个表
- Java虚拟机发展史
- java书籍
- C++ STL中的map和vector
- poj 3628 Bookshelf 2(01背包)
- mybatis之动态sql(八)
- vijos1067 Warcraft III 守望者的烦恼(矩阵倍增)
- ScrollView反弹效果 仿小米私密短信效果
- ArrayAvg
- log4j.properties 的使用详解
- Ants
- [python]map方法与并行执行