vector二维数组初始化赋值_vector实现二维数组的赋值

vector二维数组初始化赋值_vector实现二维数组的赋值一。二维vector初始化1.采用构造函数vector<vector<int>>vec(10,vector<int>(8));//10行8列,全部初始化为零2.添加元素(每次添加一行)inta[]={1,2,3,4};vector<int>ivec(a,a+4);//数组初始化vector,见最下面(…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一。二维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.  
  5. int main()
  6. {
  7. int arr[] = {11, 32, 41, 25, 67, 100, 88, 233}; // 列表初始化内置数组
  8. // 指出拷贝区域范围,使用数组初始化 vector 对象
  9. vector<int> iv(begin(arr), end(arr));
  10.  
  11. for (auto c : iv) // 输出 vector 对象的内容以验证结果
  12. cout << c << ‘ ‘;
  13. cout << endl;
  14.  
  15. return 0;
  16. }

 

程序一的运行结果为:

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.  
  7. int main()
  8. {
  9. int arr[] = {11, 32, 41, 25, 67, 100, 88, 233}; // 列表初始化内置数组
  10. // 指出拷贝区域范围,使用数组初始化 vector 对象
  11. vector<int> iv(arr + 2, arr + 7);
  12.  
  13. for (auto c : iv) // 输出 vector 对象的内容以验证结果
  14. cout << c << ‘ ‘;
  15. cout << endl;
  16.  
  17. return 0;
  18. }

 

程序二的运行结果为:

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;

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192176.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 缺陷报告流程_缺陷报告有统一的模板

    缺陷报告流程_缺陷报告有统一的模板1.缺陷1.1什么是缺陷软件缺陷就是通常说的Bug,它是指在软件中(包括文档和程序)存在的影响软件正常运行的问题。1.2缺陷产生的原因 需求不明确和变更(沟通不充分产生) 软件结构复杂(架构不合理,认知不到位) 编码问题(程序员都是培训的,太菜了) 项目期限短(时间问题,越快越忙越出错) 使用新技术(不是最新的才是最好的,大家都知道老人活好) 1.3缺陷分类1.3.1测试种类分类 界面类 功能类 性能类 安

    2022年9月18日
    0
  • Mysql锁机制简单了解一下

    Mysql锁机制简单了解一下一锁分类(按照锁的粒度分类)Mysql为了解决并发、数据安全的问题,使用了锁机制。可以按照锁的粒度把数据库锁分为表级锁和行级锁。表级锁:Mysql中锁定粒度最大的一种锁,对当前操作的整张表加锁,实现简单,资源消耗也比较少,加锁快,不会出现死锁。其锁定粒度最大,触发锁冲突的概率最高,并发度最低,MyISAM和InnoDB引擎都支持表级锁。行级锁Mysql中锁定粒…

    2022年5月1日
    39
  • JDK8辅助学习(四):Stream流 collect() 方法的详细使用介绍「建议收藏」

    JDK8辅助学习(四):Stream流 collect() 方法的详细使用介绍「建议收藏」Stream流collect()方法的使用介绍//1.<R>Rcollect(Supplier<R>supplier,BiConsumer<R,?superT>accumulator,BiConsumer<R,R>combiner);//2….

    2022年9月27日
    0
  • Unity 点乘和叉乘的原理和使用

    Unity 点乘和叉乘的原理和使用Unity当中经常会用到向量的运算来计算目标的方位,朝向,角度等相关数据,下面咱们来通过实例学习下Unity当中最常用的点乘和叉乘的使用。点乘 (又称”点积”,”数量积”,”内积”)(DotProduct,用*)定义:a·b=|a|·|b|cos【注:粗体小写字母表示向量,表示向量a,b的夹角,取值范围为[0,180]】几何意义:是一条边向另一条边的投影乘以另一条边的长度.

    2022年10月23日
    0
  • linux top命令 详解「建议收藏」

    linux top命令 详解「建议收藏」top命令主要用来观察和收集运行在系统上的进程的一些有用信息。ps只是一个快照,是ps命令执行的那一瞬间的系统中进程的快照。top则可以用于持续观察。第一步,在命令行键入top,回车进入top管理界面。第一行其实和uptime的执行效果是一样的。分析一下,12:48:06是当前运行这个命令的时候,机器的时间。up134days,19:36,指的是说这台机器,持续运行了134天了,启动于134天前的19:36。5users代表的是当前运行这个命令的时候,这台机器上总共登陆有5个用

    2022年9月24日
    1
  • Eclipse乱码怎么办

    Eclipse乱码怎么办Android与H5交互前言一.设置工作空间的编码前言在Eclipse中导入新的项目的时候,会遇到乱码的问题,而乱码的问题主要集中在中文的显示上。不过通过设置编码方式,看似十分恐怖的乱码问题也能够轻易解决。Eclipse设置编码的地方主要有三处,这三处的设置都会影响中文的显示。一.设置工作空间的编码编辑器的编码会影响到所有的项目中的字符的显示,可以说是作用最为广泛的设置,每一个项目都会…

    2022年5月9日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号