STL 基本容器学习笔记
2015-06-21 23:47
295 查看
容器的共通操作
初始化
·以某个数组元素为初值,完成初始化int src[] = {1,2,3,4,5,6,7}; vector<int> c(src,sizeof(src)/sizeof(src[0]));
·以另一个容器的元素为初值,完成初始化
vector<char> a_vector; //... vector<char> b(a_vector);
·以标准输入装置完成初始化
vector<int> a((std::istream_iterator<int>(std::cin)), (std::istream_iterator<int>()));
与大小相关的操作函数
size() 返回当前容器的元素数量。empty() 这是size()==0 表达的快捷形式,效率更高。
max_size() 返回容器最大容纳元素数量。一般返回索引型别的最大值。
vector
笔记:vector<Elem> c(n); //利用元素的初始化函数生成一个大小为n的容器 vector<Elem> c(n,elem); //利用elem的值初始化 vector<Elem> c(beg,end);//利用 [beg,end) 区间初始化 c.capacity(); //返回重新分配空间之前最大容量 c.assign(n,elem); //复制n个elem,赋值给c c.assign(beg,end); //复制[beg,end) 区间赋值给c c.swap(b); //交换c,b swap(c,b); //同上
元素的存取:
c.at(idx); //返回索引为idx的元素。检查越界。 //若越界,抛出out_of_range c[idx]; //不检查越界 c.front(); //返回第一个元素,不检查。 c.back(); //返回最后一个元素,不检查。
安插、移除元素:
c.insert(pos,elem); //pos位置插入elem副本。返回新元素位置。 c.insert(pos,n,elem); //pos位置插入n个elem副本。无返回值。 c.insert(pos,beg,end); //pos位置插入[beg,end)区间副本。无返回值。 c.push_back(elem); //尾部添加一个elem副本。无返回值。 c.pop_back; //删除最后一个元素。无返回值。 c.erase(pos); //移除pos位置上的元素。(标准中不返回值) c.erase(beg,end); //移除区间[beg,end)中的元素,返回下一元素位置 c.resize(num); //将元素数量改为num,新元素以初始值补充 c.resize(num,elem); //新元素以elem补充。 c.clear(); //移除所有元素,清空容器。
相关文章推荐
- Linux文件系统的实现
- leetcode刷题,总结,记录,备忘 169
- ASP.NET 学习博客
- 双系统安装
- 7.MyBatis 关联查询(一对一)
- Excel随机生成数据
- Django开发BBS---51网络课程笔记(2)
- Redis持久化
- java基础—采用递归的方式来获取相关目录下的子目录的名称
- JavaScript字符串函数大全
- 《人,绩效和职业道德》读后感
- linux安装JDK笔记
- 2015062109 - 坚持
- 用js获取当前页面的url的相关信息方法
- Matlab 为什么要使用面向对象的编程——开篇
- 拥抱 Gradle: 下一代自动化工具
- MySQL 和 c++ 连接时报错error C2146: syntax error : missing ';' before identifier 'fd'
- 14.命令模式
- 团队项目---测试与调试
- CoreSpotlight简单入门