大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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 对象
只需要 指明拷贝区域的首元素地址和尾后地址就可以了,下面通过两组程序及其运行结果来深入理解一下:
程序一:
- #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;
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/192176.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...