一。二维vector初始化

1. 采用构造函数 vector<vector<int>> vec(10, vector<int>(8)); //10行8列,全部初始化为零

2.添加元素(每次添加一行)

int a[] = { 1, 2, 3, 4 };

vector<int> ivec(a, a + 4);//数组初始化vector,见最下面(也可以不用数组初始化,直接{}初始化vector)

vector<vector<int> > m;

m.push_back(ivec);

ivec[0] = 5;

ivec[1] = 6;

ivec[2] = 7;

ivec[3] = 8;

m.push_back(ivec);

ivec[0] = 9;

ivec[1] = 10;

ivec[2] = 11;

ivec[3] = 12;

m.push_back(ivec);

ivec[0] = 13;

ivec[1] = 14;

ivec[2] = 15;

ivec[3] = 16;

m.push_back(ivec);

3.直接初始化

vector<vector<char>> board = {{'X','.','.','X'},{'.','.','.','X'},{'.','.','.','X'}};

二。使用数组来初始化 vector 对象

只需要 指明拷贝区域的首元素地址和尾后地址就可以了,下面通过两组程序及其运行结果来深入理解一下:

程序一:

  1. #include <iostream>
  2. #include <vector>
  3. #include <iterator>
  4. int main()
  5. {
  6. int arr[] = {11, 32, 41, 25, 67, 100, 88, 233}; // 列表初始化内置数组
  7. // 指出拷贝区域范围,使用数组初始化 vector 对象
  8. vector<int> iv(begin(arr), end(arr));
  9. for (auto c : iv) // 输出 vector 对象的内容以验证结果
  10. cout << c << ' ';
  11. cout << endl;
  12. return 0;
  13. }

程序一的运行结果为:

11 32 41 25 67 100 88 233,与期望中完全一致

程序二:

  1. #include <iostream>
  2. #include <vector>
  3. using std::vector;
  4. using std::cout;
  5. using std::endl;
  6. int main()
  7. {
  8. int arr[] = {11, 32, 41, 25, 67, 100, 88, 233}; // 列表初始化内置数组
  9. // 指出拷贝区域范围,使用数组初始化 vector 对象
  10. vector<int> iv(arr + 2, arr + 7);
  11. for (auto c : iv) // 输出 vector 对象的内容以验证结果
  12. cout << c << ' ';
  13. cout << endl;
  14. return 0;
  15. }

程序二的运行结果为:

41 25 67 100 88,与期望中完全一致

需要特别注意的是, vector 对象不能用来初始化数组 ,这个过程是不可逆的。

三。

vec.size()是行数

vec[0].size()是列数

for (int i =0;i<vec.size();++i)

{

for (int n = 0; n<vec[0].size();++n)

{

cout << vec[i][n] << " ";

}

cout << endl;

}

二维vector初始化,赋值相关推荐

  1. C++ 二维vector初始化、resize()

    二维vector初始化 1.定义时就设置大小.初值 vector<vector<int> > v(2, vector<int>(4,1));//2行*4列,初始化为 ...

  2. C++——二维vector初始化大小方法

    初始化二维vector,为r*c的vector,所有值为0. 1.直接用初始化方法(刚开始没想到) vector<vector<int> > newOne(r, vector& ...

  3. 二维vector不能用直接访问的方式赋值,要pushback进去

    对于二维vector可以使用push_back的方法进行赋值,先push_back出一维数组,再将这个一维数组push_back进二维数组. 直接访问的vector[][]方式可以访问数组,不过不能写 ...

  4. 二维vector的声明和初始化

    初始化二维vector 声明 m*n的二维vector: vector<vector<int>> vec(m,vector<int>(n)); 初始化m *n 的二 ...

  5. c++ vector二维数组初始化与vector切片

    0.用vector模拟二维数组 实际开发过程中,经常会使用vector嵌套的方式来模拟二维数组,下面我们详细分析一下如何对其进行初始化. 1.逐个初始化 首先我们采用逐个初始化的方式,对二维vecto ...

  6. 二维vector数组初始化方法

    在用devcpp编译程序时发现,二维vector数组如果只定义的话,不指定元素个数也不进行初始化的时候会导致编译出错. 通常情况下,可以只提供vector对象容纳的元素数量而略去初始值.此时库会创建一 ...

  7. C++ 动态二维数组(二维vector)

    创建二维数组: vector<int> vec(4,2); //将含有4个数据的一维动态数组初始为2 vector< vector<int> > asd1(row, ...

  8. 二维数组初始化的形式有?

    二维数组初始化的形式有? 数据类型 数组名[整常量表达式][ 整常量表达式]={ 初始化数据 }: 在{ }中给出各数组元素的初值,各初值之间用逗号分开.把{ }中的初值依次赋给各数组元素. 有如下几 ...

  9. python初始化一个二维数组_二维数组初始化

    对于一个M行N列的二维数组,可以看成是M行一维数组,一维数组是N列.例如 int array[3][2]; 是一个3行2列的二维数组,其实,如同3个一维数组,一维数组是2列.那么,对3行2列的二维数组 ...

  10. 二维vector容器输入

    二维vector容器输入 不像二维数组那样,可以直接对arr[i][j]进行循环赋值.在vector<vector<int>>中,因为vector是一个容器,最外层的vecto ...

最新文章

  1. Git bash 终止git log 命令
  2. 使用MEF实现通用参数设置
  3. Webstorm2017安装以及破解和汉化
  4. vue-element-admin文档gitee地址
  5. 教你如何察觉出网络钓鱼电子邮件
  6. 葫芦岛市一高中2021年高考成绩查询表,2021年葫芦岛高考状元多少分是谁,葫芦岛高考状元名单资料...
  7. python中read和readline的区别_Python中read()、readline()和readlines()三者间的区别和用法...
  8. Android动态添加Device Admin权限
  9. Unitest框架的使用(二)Unittest断言及应用
  10. mysql数据库不存在_mysql 数据库不存在
  11. XP共享拒绝访问,全面解决
  12. python可以做什么-学会Python后都能做什么?网友们的回答简直不要太厉害
  13. 双向重定向指令 tee
  14. Host localhost is not allowed to connect to mysql server解决方法
  15. oracle入门教程+视频教程
  16. 如何玩转私域引流?全链路拆解经典玩法和实战案例
  17. 揭秘!飞机上不为人知的六大“怪事”
  18. 日夕如是寒暑不间,基于Python3+Tornado6+APScheduler/Celery打造并发异步动态定时任务轮询服务
  19. 《计算机科学导论》第四章 数据运算
  20. 思维导图 XMind 闯关之路(第03关)插入图片

热门文章

  1. android实现半透明,Android应用开发中半透明效果实现方案总结
  2. 毕业设计之 ----基于微信小程序的商城购物系统
  3. TeamTalk Base静态库说明
  4. CrossApp 0.3.8 发布,跨平台移动App开发引擎
  5. STL两种格式:文本格式与二进制格式
  6. 测试鼠标宏软件,Mini Mouse Macro(鼠标宏设置工具)
  7. android 网易音乐sdk,Netease Music SDK 开发文档
  8. 5种方式实现 Java 单例模式
  9. 高通MSM8937/ MSM8953/MSM8940/MSM8920/MSM8917启动流程简介
  10. 优思学院|精益六西格玛中的8大浪费是什么?