二维vector初始化,赋值
一。二维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 对象
只需要 指明拷贝区域的首元素地址和尾后地址就可以了,下面通过两组程序及其运行结果来深入理解一下:
程序一:
- #include <iostream>
- #include <vector>
- #include <iterator>
- int main()
- {
- int arr[] = {11, 32, 41, 25, 67, 100, 88, 233}; // 列表初始化内置数组
- // 指出拷贝区域范围,使用数组初始化 vector 对象
- vector<int> iv(begin(arr), end(arr));
- for (auto c : iv) // 输出 vector 对象的内容以验证结果
- cout << c << ' ';
- cout << endl;
- return 0;
- }
程序一的运行结果为:
11 32 41 25 67 100 88 233,与期望中完全一致
程序二:
- #include <iostream>
- #include <vector>
- using std::vector;
- using std::cout;
- using std::endl;
- int main()
- {
- int arr[] = {11, 32, 41, 25, 67, 100, 88, 233}; // 列表初始化内置数组
- // 指出拷贝区域范围,使用数组初始化 vector 对象
- vector<int> iv(arr + 2, arr + 7);
- for (auto c : iv) // 输出 vector 对象的内容以验证结果
- cout << c << ' ';
- cout << endl;
- return 0;
- }
程序二的运行结果为:
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初始化,赋值相关推荐
- C++ 二维vector初始化、resize()
二维vector初始化 1.定义时就设置大小.初值 vector<vector<int> > v(2, vector<int>(4,1));//2行*4列,初始化为 ...
- C++——二维vector初始化大小方法
初始化二维vector,为r*c的vector,所有值为0. 1.直接用初始化方法(刚开始没想到) vector<vector<int> > newOne(r, vector& ...
- 二维vector不能用直接访问的方式赋值,要pushback进去
对于二维vector可以使用push_back的方法进行赋值,先push_back出一维数组,再将这个一维数组push_back进二维数组. 直接访问的vector[][]方式可以访问数组,不过不能写 ...
- 二维vector的声明和初始化
初始化二维vector 声明 m*n的二维vector: vector<vector<int>> vec(m,vector<int>(n)); 初始化m *n 的二 ...
- c++ vector二维数组初始化与vector切片
0.用vector模拟二维数组 实际开发过程中,经常会使用vector嵌套的方式来模拟二维数组,下面我们详细分析一下如何对其进行初始化. 1.逐个初始化 首先我们采用逐个初始化的方式,对二维vecto ...
- 二维vector数组初始化方法
在用devcpp编译程序时发现,二维vector数组如果只定义的话,不指定元素个数也不进行初始化的时候会导致编译出错. 通常情况下,可以只提供vector对象容纳的元素数量而略去初始值.此时库会创建一 ...
- C++ 动态二维数组(二维vector)
创建二维数组: vector<int> vec(4,2); //将含有4个数据的一维动态数组初始为2 vector< vector<int> > asd1(row, ...
- 二维数组初始化的形式有?
二维数组初始化的形式有? 数据类型 数组名[整常量表达式][ 整常量表达式]={ 初始化数据 }: 在{ }中给出各数组元素的初值,各初值之间用逗号分开.把{ }中的初值依次赋给各数组元素. 有如下几 ...
- python初始化一个二维数组_二维数组初始化
对于一个M行N列的二维数组,可以看成是M行一维数组,一维数组是N列.例如 int array[3][2]; 是一个3行2列的二维数组,其实,如同3个一维数组,一维数组是2列.那么,对3行2列的二维数组 ...
- 二维vector容器输入
二维vector容器输入 不像二维数组那样,可以直接对arr[i][j]进行循环赋值.在vector<vector<int>>中,因为vector是一个容器,最外层的vecto ...
最新文章
- Git bash 终止git log 命令
- 使用MEF实现通用参数设置
- Webstorm2017安装以及破解和汉化
- vue-element-admin文档gitee地址
- 教你如何察觉出网络钓鱼电子邮件
- 葫芦岛市一高中2021年高考成绩查询表,2021年葫芦岛高考状元多少分是谁,葫芦岛高考状元名单资料...
- python中read和readline的区别_Python中read()、readline()和readlines()三者间的区别和用法...
- Android动态添加Device Admin权限
- Unitest框架的使用(二)Unittest断言及应用
- mysql数据库不存在_mysql 数据库不存在
- XP共享拒绝访问,全面解决
- python可以做什么-学会Python后都能做什么?网友们的回答简直不要太厉害
- 双向重定向指令 tee
- Host localhost is not allowed to connect to mysql server解决方法
- oracle入门教程+视频教程
- 如何玩转私域引流?全链路拆解经典玩法和实战案例
- 揭秘!飞机上不为人知的六大“怪事”
- 日夕如是寒暑不间,基于Python3+Tornado6+APScheduler/Celery打造并发异步动态定时任务轮询服务
- 《计算机科学导论》第四章 数据运算
- 思维导图 XMind 闯关之路(第03关)插入图片
热门文章
- android实现半透明,Android应用开发中半透明效果实现方案总结
- 毕业设计之 ----基于微信小程序的商城购物系统
- TeamTalk Base静态库说明
- CrossApp 0.3.8 发布,跨平台移动App开发引擎
- STL两种格式:文本格式与二进制格式
- 测试鼠标宏软件,Mini Mouse Macro(鼠标宏设置工具)
- android 网易音乐sdk,Netease Music SDK 开发文档
- 5种方式实现 Java 单例模式
- 高通MSM8937/ MSM8953/MSM8940/MSM8920/MSM8917启动流程简介
- 优思学院|精益六西格玛中的8大浪费是什么?