1. //比较数组、vector、array
  2. #include <iostream>
  3. #include <vector>
  4. #include <array>
  5. #include <iomanip>
  6. using namespace std;
  7. int main(void)
  8. {
  9. /*1.构造方式
  10. * vector:有多种构造方式,不需要定义元素个数;除常见的初始化方式外,还可以
  11. * 通过vector和数组构造新的vector
  12. * array:定义时必须指定array的大小,可通过array构造新的array,不可使用数组构造
  13. * 数组:定义时必须指定array的大小,使用{}初始化
  14. */
  15. vector<int> myvector = {1,2,3,4,5};
  16. array<int, 5> myarray = {1,2,3,4,5};
  17. int myint[5] = { 1, 2, 3, 4, 5 };
  18. /*2.访问方式
  19. * 三者均可通过下标运算符[]对元素进行操作,vector和array还可以通过at/front/back进行操作
  20. */
  21. cout << setw(10) << "vector" << setw(10) << "array" << setw(10) << "数组" << endl;
  22. for (int i = 0; i < 5; i++)
  23. {
  24. cout << setw(10) << myvector.at(i) << setw(10) << myarray.at(i) << setw(10) << myint[i] << endl;
  25. }
  26. /*3.遍历方式
  27. * vector和array还可以通过正向和反向迭代器对元素进行遍历
  28. */
  29. cout << "=============正向迭代器遍历=========="<< endl;
  30. for (vector<int>::iterator it = myvector.begin(); it != myvector.end();++it)
  31. {
  32. cout << *it << endl;
  33. }
  34. cout << "=============反向迭代器遍历==========" << endl;
  35. for (vector<int>::reverse_iterator it = myvector.rbegin(); it != myvector.rend(); ++it)
  36. {
  37. cout << *it << endl;
  38. }
  39. /*4.增删元素
  40. * vector可以通过push_back/pop_back/emplace/emplace_back/insert动态增删元素
  41. * array和数组无法实现动态增删元素
  42. */
  43. myvector.push_back(6);
  44. myvector.emplace_back(7);
  45. vector<int>::iterator it = myvector.end();
  46. myvector.insert(it, { 8, 9 });//在尾部插入元素,可通过it改变插入位置,也可以插入多个元素
  47. myvector.pop_back();
  48. cout << "=============动态增删元素==========" << endl;
  49. for (vector<int>::iterator it = myvector.begin(); it != myvector.end(); ++it)
  50. {
  51. cout << *it << endl;
  52. }
  53. return 0;
  54. }

vector以及array和数组的更多相关文章

  1. c++ 的vector、array和数组的比较

    ref:  http://blog.csdn.net/haust_wang/article/details/49848169

  2. [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 ...

  3. Vector, ArrayList, Array

    JAVA新手在使用JAVA的时候大概都会遇到这个问题: JAVA中的Array, ArrayList, Vector, List, LinkedList有什么样的区别?尤其是Vector, Array ...

  4. C++ vector 实现二维数组

    在STL中Vector这一容器,无论是在封装程度还是内存管理等方面都由于传统C++中的数组.本文主要是关于使用Vector初始化.遍历方面的内容.其他二维的思想也是类似的. 这里简单叙述一下C++ 构 ...

  5. vector创建2维数组

    以前我要建立一个二维数组,总是使用 int N=5, M=6; vector<vector<int> > Matrix(N); for(int i =0; i< Matr ...

  6. Vector 和 Array 区别

    1:array 定义的时候必须定义数组的元素个数;而vector 不需要:且只能包含整型字面值常量,枚举常量或者用常量表达式初始化的整型const对象, 非const变量以及需要到运行阶段才知道其值的 ...

  7. C++标准库分析总结(四)——<Vector、Array、Forward_list设计原则>

    本节主要总结标准库Vector和Array的设计方法和特性以及相关迭代器内部特征 1.Vector 1.1 Vector 内部实现 Vector是自增长的数组,其实在标准库中没有任何一种容器能原地扩充 ...

  8. ArrayList、LinkedList、Vector、Array和HashMap、HashTable

    就 ArrayList 与 Vector 主要从二方面来说. 一.同步性:Vector 是线程安全的,也就是说是同步的,而ArrayList 是线程序不安全的,不是同步的 二.数据增长:当需要增长时, ...

  9. Namespace, string, vector and array

    1. Headers should not include using declaration Code inside headers ordinarily should not include us ...

随机推荐

  1. 【JZOJ6288】旋转子段

    description analysis 可以先用前缀和把原串不调整的方案数先求出来 对于一种翻转,肯定是把\([i..a[i]]\)或\([a[i]..i]\)这段区间翻转 也可以看做是以\({i+ ...

  2. c++ strlen() 函数

    { char *buf = new char[1024]; ZeroMemory(buf,1024) for(int i = 0; i < 1023; i++) { buf[i] = '5'; ...

  3. bootstrap1总结

    bootstrap中的排版----标题: 标题(h1~h6/.h1~.h6) 副标题(small) h1:36px h2:30px h3:24px h4:18px h5:14px h6:12px 排版 ...

  4. web移动端rem的适配

    ** 需求: 随着移动端设备的变化,内容也跟着变化.**先来说说rem单位,以rem为单位,其大小是根据根元素(html标签)的字体大小来判断的,      如 html的font-size:100p ...

  5. socket2里面,有些函数带WSA开头,有些不带。请问有何区别?

    WSASocket可以使用WinSock特有功能,比如重叠IO,用dwflags指定.    WSA的A是指api,用于区别spi,因为在spi中还有wspsocket,wspaccept等... 在 ...

  6. 关于type return to continue,or q <return> to quit

    由于GDB要打印的信息被分页了 所以需要设置不分页显示 set pagination off

  7. Python - Virtualenv 创建虚拟环境

    Virtualenv 回到顶部 为了解决各个项目的共同依赖同一个环境,造成版本冲突等,virtualenv创建一个干净的环境,在这个环境下,进行Python项目的开发等,就成为一个个独立的项目,从而避 ...

  8. USACO 2008 November Gold Cheering up the Cows /// MST oj24381

    题目大意: 输入n,p:n个点,p条路 接下来n行输入c[]:在各个点需要花费的时间 接下来p行输入u,v,w:u点到v点的路需要花费时间w 求经过所有点且最后回到起点的最少花费时间 https:// ...

  9. 2019 Multi-University Training Contest 7 Kejin Player Final Exam

    Kejin Player 期望DP 题意: 初始等级为1,每一级有四个参数 r , s , x , a . 每一级有一个概率p=r/s花费a的代价升级到下一级,失败可能会倒退到x级 设从 l 到 r ...

  10. mysql简单的操作

    启动数据库服务     net start mysql     停止数据库服务     net stop mysql      退出数据库      exit     保存操作及结果 将在命令行窗口中 ...