vector以及array和数组
- //比较数组、vector、array
- #include <iostream>
- #include <vector>
- #include <array>
- #include <iomanip>
- using namespace std;
- int main(void)
- {
- /*1.构造方式
- * vector:有多种构造方式,不需要定义元素个数;除常见的初始化方式外,还可以
- * 通过vector和数组构造新的vector
- * array:定义时必须指定array的大小,可通过array构造新的array,不可使用数组构造
- * 数组:定义时必须指定array的大小,使用{}初始化
- */
- vector<int> myvector = {1,2,3,4,5};
- array<int, 5> myarray = {1,2,3,4,5};
- int myint[5] = { 1, 2, 3, 4, 5 };
- /*2.访问方式
- * 三者均可通过下标运算符[]对元素进行操作,vector和array还可以通过at/front/back进行操作
- */
- cout << setw(10) << "vector" << setw(10) << "array" << setw(10) << "数组" << endl;
- for (int i = 0; i < 5; i++)
- {
- cout << setw(10) << myvector.at(i) << setw(10) << myarray.at(i) << setw(10) << myint[i] << endl;
- }
- /*3.遍历方式
- * vector和array还可以通过正向和反向迭代器对元素进行遍历
- */
- cout << "=============正向迭代器遍历=========="<< endl;
- for (vector<int>::iterator it = myvector.begin(); it != myvector.end();++it)
- {
- cout << *it << endl;
- }
- cout << "=============反向迭代器遍历==========" << endl;
- for (vector<int>::reverse_iterator it = myvector.rbegin(); it != myvector.rend(); ++it)
- {
- cout << *it << endl;
- }
- /*4.增删元素
- * vector可以通过push_back/pop_back/emplace/emplace_back/insert动态增删元素
- * array和数组无法实现动态增删元素
- */
- myvector.push_back(6);
- myvector.emplace_back(7);
- vector<int>::iterator it = myvector.end();
- myvector.insert(it, { 8, 9 });//在尾部插入元素,可通过it改变插入位置,也可以插入多个元素
- myvector.pop_back();
- cout << "=============动态增删元素==========" << endl;
- for (vector<int>::iterator it = myvector.begin(); it != myvector.end(); ++it)
- {
- cout << *it << endl;
- }
- return 0;
- }
vector以及array和数组的更多相关文章
- c++ 的vector、array和数组的比较
ref: http://blog.csdn.net/haust_wang/article/details/49848169
- [CareerCup] 17.6 Sort Array 排列数组
17.6 Given an array of integers, write a method to find indices m and n such that if you sorted elem ...
- Vector, ArrayList, Array
JAVA新手在使用JAVA的时候大概都会遇到这个问题: JAVA中的Array, ArrayList, Vector, List, LinkedList有什么样的区别?尤其是Vector, Array ...
- C++ vector 实现二维数组
在STL中Vector这一容器,无论是在封装程度还是内存管理等方面都由于传统C++中的数组.本文主要是关于使用Vector初始化.遍历方面的内容.其他二维的思想也是类似的. 这里简单叙述一下C++ 构 ...
- vector创建2维数组
以前我要建立一个二维数组,总是使用 int N=5, M=6; vector<vector<int> > Matrix(N); for(int i =0; i< Matr ...
- Vector 和 Array 区别
1:array 定义的时候必须定义数组的元素个数;而vector 不需要:且只能包含整型字面值常量,枚举常量或者用常量表达式初始化的整型const对象, 非const变量以及需要到运行阶段才知道其值的 ...
- C++标准库分析总结(四)——<Vector、Array、Forward_list设计原则>
本节主要总结标准库Vector和Array的设计方法和特性以及相关迭代器内部特征 1.Vector 1.1 Vector 内部实现 Vector是自增长的数组,其实在标准库中没有任何一种容器能原地扩充 ...
- ArrayList、LinkedList、Vector、Array和HashMap、HashTable
就 ArrayList 与 Vector 主要从二方面来说. 一.同步性:Vector 是线程安全的,也就是说是同步的,而ArrayList 是线程序不安全的,不是同步的 二.数据增长:当需要增长时, ...
- Namespace, string, vector and array
1. Headers should not include using declaration Code inside headers ordinarily should not include us ...
随机推荐
- js代码触发事件
/*** * 需要触发谁的点击事件 * @param how_id 节点的id 如:<input id='test'/> 则how_id=test * @param how_this 这个 ...
- kubernetes监控和性能分析工具:heapster+influxdb+grafana
1.部署heapster 下载 heapster 相关 yaml 文件 [root@master dashboard]# wget https://raw.githubusercontent.com/ ...
- div中包着文字,div出现隐藏的时候,文字总是在div外面。
背景: 给博客加一个侧边栏,点击出现隐藏,每次点击出现或者隐藏,文字总是很突兀的就出来了. 解决: overflow:hidden
- 小程序开发之wepy框架
ps 本教程使用wepy 1.7+以上的版本 wepy-让小程序支持组件化开发的框架 鹅厂出品,用于开发自家产品的框架还是很良心的,框架设计思路上参照vue,但不是全部照搬,这点要注意. 对微信小程序 ...
- 总结windows cmd 查看进程,端口,硬盘信息
1.查看window所有进程 tasklist 2.查看windows所占用的进程号 tasklist|findstr 1916 3.杀死进程,进程pid taskkill /f /pid 10156 ...
- 牛客暑期第六场G /// 树形DP 最大流最小割定理
题目大意: 输入t,t个测试用例 每个测试用例输入n 接下来n行 输入u,v,w,树的无向边u点到v点权重为w 求任意两点间的最大流的总和 1.最大流最小割定理 即最大流等于最小割 2.无向树上的任意 ...
- Linux+QT4+我忙活半宿的结果
一个简单的计算器,虽然很弱智,而且还不完善,但是通过它,我大致了解了一下QT的用法 QT真的很高级,已经近乎纯面向对象的了. QString可以自己转化成多种类型,就这一点,就已经和C#差不多 ...
- Caffe系列4——基于Caffe的MNIST数据集训练与测试(手把手教你使用Lenet识别手写字体)
基于Caffe的MNIST数据集训练与测试 原创:转载请注明https://www.cnblogs.com/xiaoboge/p/10688926.html 摘要 在前面的博文中,我详细介绍了Caf ...
- 【数位DP】[LOJ10168] 恨7不成妻
还是数位DP... 状态:$f[x][val][sum]$表示当前第x位,当前数字为val,当前各位数字和为sum 观察到$val$,$sum$过大,很套路地模7即可... 每个状态存储三个要用到的值 ...
- jmeter参数化遇到的问题
遇到的问题是点击运行后,察看结果树没有任何结果,且右上角的警告日志是: meter.threads.JMeterThread: Test failed! java.lang.IllegalArgume ...