顺序容器
来源:互联网 发布:桌面主题软件哪个好 编辑:程序博客网 时间:2024/06/08 06:52
顺序容器
vertor, deque, list, forward_list; 的插入, 删除, 拷贝, 读取, 迭代器
#include <iostream>#include <cstdlib>#include <list>#include <vector>#include <string>#include <array>#include <deque>#include <forward_list>int main(){ //vector; //不支持push_front 和 emplace_back; //不支持pop_front删除; //resize扩展大小; 实质不改变容量中元素的数量, 它仅影响预先分配的内存大小; std::vector<int> a; a.push_back(10); a.push_back(1); a.push_back(20); /* for (auto &i : a) std::cin >> i; */ a.insert(a.begin(), 213); //vertor不支持 push_front 但是可以用insert将元素插入头位置, 只是很耗时;并且insert返回值是插入元素的位置 /* int i; std::cin >> i; a.push_back(i); */ auto c = a.begin(); auto c1 = *c; auto c2 = a.front(); //a中首元素的引用 auto b = a.end(); //迭代end指向最后一位元素后不存在的元素位置 auto b1 = *(--b); auto &b2 = a.back(); b2 = 10000; //a中尾元素的引用 auto d = a.cbegin(); auto e = a.crbegin(); std::vector<int >::iterator m = a.end(); std::vector<int >::const_iterator q = a.begin(); std::vector<int >::iterator w = a.begin(); a.pop_back(); //删除首元素 a.erase(a.begin() + 1, a.end() - 1); //删除范围元素 a.resize(10); //扩展大小到10; a.resize(5, 1); //将大小扩展到5, 全部为1, 其他多余的元素删除; std::cout << "vector : \n"; for (auto i : a) std::cout << i << " "; std::cout << '\n' << a.size() << '\n'; for (int i = 0; i < a.size(); i++) std::cout << a[i] << " "; a.clear(); //deque; //与vector相比, 可以将元素插入头位置, push_front; std::deque<int > a1 = { 1 ,2 ,3 ,4 ,5 ,6 ,7, 8, 9, 10 }; a1.push_back(11); a1.push_front(12324); //list; std::list<std::string > str = { "123", "234", "345" }; std::list<std::string > stri = { "243235", "asd" }; std::list<std::string > str1; str1.push_front("2423"); str.assign(10, "1"); //用assign初始化10 个 "1"; /* for (auto &st : str) std::cin >> st; */ str.push_back("12222"); str.push_front("122222"); //list, forward_list, deque还支持 push_front 将元素插入头位置; std::cout << "\n\n list : \n"; for (auto i : str) std::cout << i << " "; //array; //不支持pop的删除操作 //不支持resize; std::array<int, 10> ar = { 1, 2, 3, 4, 5 }; std::array<int, 10 > ar0 = { 2, 4, 6, 8, 10, 111 }; std::array <std::string, 10 > ar1; std::cout << "\n\n array : \n"; for (auto i : ar) std::cout << i << " "; //forward_list; //不支持push_back和emplace_back; //有专有的insert 和 emplace; //而forward_list不能递减 即, --; //不支持pop_back的删除, 有特殊版本的eraser std::forward_list<std::string > str0 = { "1", "2", "3" }; std::forward_list<std::string > str2(str0); std::cout << "\n\n forward_list : \n"; for (auto i : str0) std::cout << i << " "; //拷贝; str0.assign(str.begin(), str.end()); //array不能用assign拷贝; std::array<int, 10 > cpyar = ar; //交换; ar.swap(ar0); //array类型数组大小要一样, 将ar与ar0交换; swap(ar, ar0); str.swap(stri); system("pause"); return 0;}
阅读全文
0 0
- 顺序容器
- 顺序容器
- 顺序容器
- 顺序容器
- 顺序容器
- 顺序容器
- 顺序容器
- 顺序容器
- 顺序容器
- 顺序容器
- 顺序容器
- 顺序容器
- 顺序容器
- 顺序容器
- 顺序容器
- 顺序容器
- 顺序容器
- 顺序容器
- jsp实现一个单元格对应多个单元格的效果
- java基础之二维数组不定义行数
- 集合【第一篇 List集合的API的使用(不讨论泛型集合)】
- Java8容器源码-目录
- 安装express
- 顺序容器
- faster-RCNN
- Oil Deposits (dfs)【HUD】-1241
- java-守护进程
- 170801 逆向-RouterScan(5)
- 前置增强和其他几种增强和增强顾问等
- HDU 2563 统计问题 (递推 思维)
- ccf认证画图
- Mysql常用命令详解