我有一个像这样的向量:
vector< vector<int> > myVector;
此向量中的所有行号和列号都相同。
我想找到这个向量的行数和列数。
对于行数,我想出了:
myVector[0].size();
对于列数,我想不出任何办法。您能告诉我行数是否正确以及如何获得列数吗?谢谢。
你有一个整数向量的向量
myVector[0].size()
返回 2d 向量中第一个 int 向量中的元素数量。
此类向量的结构如下所示:
myVector[
Vector[0, 4, 2, 5],
Vector[1, 4, 2]
];
当您调用 myVector[1].size() 时,它将返回 3,而 [0] 将返回 4。
对于 2d 向量中的行数(int 向量),您可以使用
myVector.size()
您可以运行它来查看它的实际效果
#include <iostream>
#include <vector>
int main(){
std::vector<std::vector<int>>MyVector;
std::vector<int>temp;
temp.push_back(1);
temp.push_back(2);
temp.push_back(3);
MyVector.push_back(temp);
std::cout << "Rows in the 2d vector: " << MyVector.size() <<
std::endl << "Columns in the 1st row: " << MyVector[0].size() <<
std::endl;
system("pause");
return 0;
}
这是输出:
Rows in the 2d vector: 1
Columns in the 1st row: 3
for(int i=0;i<v.size();i++){
for(int j=0;j<v[i].size();j++){
cout<<v[i][j]<<" ";
}
cout<<endl;
}
这里 v 是一个二维向量,其大小根据列大小而变化。 使用 v.size() 因为它给出了总行数,而 v[i].size() 给出了第 i 行中的总列数。 以下代码可用于迭代变化的二维向量。
在 C++ 中:
vector<vector < int > > matrix;
cout << "Row's Length: " << matrix.size();
cout<< "Column's Length: "<< matrix[0].size();
JAVA:
int[][] matrix;
System.out.println("Row's Length: " + matrix.length);
System.out.println("Column's Length: " + matrix[0].length);
要查找 2D 矢量中的行数,您可以简单地使用 vector_name.size()。 这将返回向量的大小。 要查找第 I 行中的列数,请使用 vector_name[i].size()
int main(){
vector<vector<int>>test{{1,2},
{5,6},
{9,10}};// 3 rows and 2 columns
cout<<"Columns: "<<test[0].size();// 2
cout<<"Rows: "<<test.size();// 3
return 0;
}
仅当每行具有相同数量的元素时,上述情况才成立。如果不同的行有不同的元素,您可以使用 for 循环找到每行中的元素数量。
vector_name.size() 为您提供 2D 向量中的列数,vector_name[0].size() 为您提供 C++ 中 2D 向量中的行数。
对于 2D 类向量,
vector< vector<int> > myVector
首先你可能会注意到一种模式,即向量的向量,第一个向量是基向量,第二个向量位于该向量之上,所以在类数组的情况下, arr[5][6]
5 是行数,6 是列数。与 vector< vector<int> > myVector
类似,您可能会认为 myVector.size()
为您提供行号,而在另一边 myVector[0].size()
或 myVector[n].size()
行“n”的任何有效范围为您提供该特定行的列号。如果列和行相同,那么只需一项检查即可解决您的问题。
我认为你的问题是你想要输入2D向量的大小以及初始化对!!!
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main(){
vector<vector<int>> adjm(n+1, vector<int> (n+1, 0));
return 0;
}
这可以解决你的问题 这就是输入行和列的邻接矩阵大小的方法