本文概述2D向量是
向量
向量。像2D数组一样, 我们可以声明值并将其分配给2D向量!
假设你熟悉C ++中的法向矢量, 在一个示例的帮助下, 我们演示了2D向量与以下法向矢量的不同之处:
CPP
// CPP program
#include <
iostream>
/* Vectors belong to a C++ library
called STL so we need to import
it first! */
#include <
vector>
using namespace std;
int main()
{
/*
In the case of a normal vector we initialize it as:1. vector<
datatype>
variable_nameNow in the case of a 2D vector all we do is create
a vector of datatype vector.We simply replace "datatype" with "vector<
int>
":1. vector<
vector<
int>
>
variable_nameThat's literally it! We just created a 2D vector!
On line 23 below we declare an actual 2D vector
named "vect".
*/vector<
vector<
int >
>
vect;
return 0;
}
在2D向量中, 每个元素都是一个向量。
CPP
/* C++ code to demonstrate a 2D vector
with elements(vectors) inside it. */
#include <
iostream>
#include <
vector>
using namespace std;
int main()
{
/*
Below we initialize a 2D vector
named "vect" on line 12 and then
we declare the values on
line 14, 15 and 16 respectively.
*/vector<
vector<
int >
>
vect
{
{1, 2, 3}, {4, 5, 6}, {7, 8, 9}
};
/*
Now we print the values that
we just declared on lines
14, 15 and 16 using a simple
nested for loop.
*/for ( int i = 0;
i <
vect.size();
i++)
{
for ( int j = 0;
j <
vect[i].size();
j++)
{
cout <
<
vect[i][j] <
<
" " ;
}
cout <
<
endl;
}
return 0;
}
输出:
1 2 3
4 5 6
7 8 9
喜欢Java的锯齿状数组, 二维向量的每个元素可以包含不同数量的值。
CPP
/*
C++ program to demonstrate a 2D vector where
each of its elements is of different size.
*/
#include <
iostream>
#include <
vector>
using namespace std;
int main()
{
/*
We initialize a 2D vector
named "vect" on line 16 with
different number of values
in each element.
*/vector<
vector<
int >
>
vect
{
/* Element one with 2 values in it. */
{1, 2}, /* Element two with 3 values in it. */
{4, 5, 6}, /* Element three with 4 values in it. */
{7, 8, 9, 10}
};
/*
Now we print the vector that we
just defined using a simple
nested for loop.
*/for ( int i = 0;
i <
vect.size();
i++)
{
for ( int j = 0;
j <
vect[i].size();
j++)
{
cout <
<
vect[i][j] <
<
" " ;
}
cout <
<
endl;
}
return 0;
}
输出:
1 2
4 5 6
7 8 9 10
运动题:
用不同大小的列定义2D向量。
例子:
Input : Number of rows : 5
Number of columns in rows :
2 3 4 5 1
Output : 1 2
1 2 3
1 2 3 4
1 2 3 4 5
1Input : Number of rows : 3
Number of columns in rows :
3 2 1Output : 1 2 3
1 2
1
2D向量通常被视为内部带有"行"和"列"的矩阵。实际上, 它们实际上是2D矢量的元素。
我们首先声明一个名为" row"的整数变量, 然后声明一个名为" column"的数组, 该数组将保存每行大小的值。
之后, 我们将根据列的大小来初始化每一行的内存。
CPP
/*
C++ program to create a 2D vector where
every row has a certain number of values
as defined by the user.(On line 13)
*/
#include <
iostream>
#include <
vector>
using namespace std;
int main()
{/* Here we tell how many rows
the 2D vector is going to have. */
int row = 5;
/* We define the number of values
each row is supposed to have. */
int colom[] = {5, 3, 4, 2, 1};
/*
We now create a vector of vector with size
equal to row.
*/vector<
vector<
int >
>
vec(row);
/*
On line 21 we created a 2D vector and assinged
it a capacity of "row"(in this case 5) units.
*//*
Now we will proceed to create the sturture of
our 2D vector by assigning the value of rows and
columns through a nested for loop.
*/
for ( int i = 0;
i <
row;
i++)
{
/* Declaring the size of the column. */
int col = colom[i];
/*
On the 43rd line we declare the
i-th row to the size of the column.
We create a normal vector of capacity "col" which
in every iteration of the for loop will define the
values inside of each row.
*/
vec[i] = vector<
int >
(col);
for ( int j = 0;
j <
col;
j++)
{
vec[i][j] = j + 1;
}
}/*
We now finally use a simple nested for loop
to print the 2D vector that we just created above.
*/
for ( int i = 0;
i <
row;
i++)
{
for ( int j = 0;
j <
vec[i].size();
j++)
{
cout <
<
vec[i][j] <
<
" " ;
}
cout <
<
endl;
}
return 0;
}
输出如下:
1 2 3 4 5
1 2 3
1 2 3 4
1 2
1
另一种方法
假设我们要初始化一个2D向量
" n"
行和
" m"
列, 值为0。
CPP
// CPP program
#include <
iostream>
#include <
vector>
using namespace std;
int main()
{
int n = 3;
int m = 4;
/*
We create a 2D vector containing "n"
elements each having the value "vector<
int>
(m, 0)".
"vector<
int>
(m, 0)" means a vector having "m"
elements each of value "0".
Here these elements are vectors.
*/
vector<
vector<
int >
>
vec( n , vector<
int >
(m, 0));
for ( int i = 0;
i <
n;
i++)
{
for ( int j = 0;
j <
m;
j++)
{
cout <
<
vec[i][j] <
<
" " ;
}
cout<
<
endl;
}return 0;
}
输出如下:
0 0 0 0
0 0 0 0
0 0 0 0
另一种方法:
假设我们要创建一个2D向量
" n"
行和
" b"
列和输入值。
CPP
// CPP program
#include <
iostream>
#include <
vector>
using namespace std;
int main()
{
int n = 4;
int m = 5;
/*
Create a vector containing "n"
vectors each of size "m".
*/
vector<
vector<
int >
>
vec( n , vector<
int >
(m));
for ( int i = 0;
i <
n;
i++)
{
for ( int j = 0;
j <
m;
j++)
{
vec[i][j] = j + i + 1;
}
}
for ( int i = 0;
i <
n;
i++)
{
for ( int j = 0;
j <
m;
j++)
{
cout <
<
vec[i][j] <
<
" " ;
}
cout <
<
endl;
}return 0;
}
输出如下:
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
【C++中具有用户定义大小的2D矢量vector】被认为是行业中最受欢迎的技能之一, 我们拥有自己的编码基础C ++ STL通过激烈的问题解决过程来训练和掌握这些概念。
推荐阅读
- Python中的numpy.floor_divide()详细介绍
- 公司的ER图详细介绍
- Python MySQL –插入操作详解
- 11个最佳免费音频编辑器软件程序推荐合集(哪个最好用())
- JavaScript基础快速入门教程(四)(类型转换和语句语法实例详解)
- JavaScript基础快速入门教程(三)(js运算符和实例详解)
- vue.js框架快速入门简明教程(三)(计算属性和属性监听)
- JavaScript基础快速入门教程(二)(js数据类型实例详解)
- JavaScript基础快速入门教程(一)(js介绍和变量详解)