我有这样的矢量:
vector< vector<int> > myVector;
此向量中的所有行号和列号都相同。
我想查找此向量的行数和列数。
对于行计数,我提出:
myVector[0].size();
对于列数,我无法想出任何东西。你能告诉我行数是否正确你能否告诉我如何计算列数?感谢。
答案 0 :(得分:17)
你有一个整数向量的向量
myVector[0].size()
返回第2个向量中第一个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 << "Collumns in the 1st row: " << MyVector[0].size() <<
std::endl;
system("pause");
return 0;
}
答案 1 :(得分:6)
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行中的colums总数。 以下代码可用于迭代变化的二维向量。
答案 2 :(得分:2)
在 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);
答案 3 :(得分:1)
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循环查找每行中的元素数。
答案 4 :(得分:0)
要查找2D向量中的行数,只需使用vector_name.size()。 这将返回向量的大小。 要查找第I行中的列数,请使用vector_name [i] .size()
答案 5 :(得分:0)
vector_name.size()为您提供2D向量中的列数,而 vector_name [0] .size()为您提供2D向量中的行数C ++中的向量。
答案 6 :(得分:0)
对于类似2D矢量的 vector< vector<int> > myVector
,首先您可能会注意到一个模式,即矢量的向量,第一个矢量是基础矢量,第二个在该矢量之上,因此arr[5][6]
的数组形式,{5}不是行数,6是列数。与vector< vector<int> > myVector
类似,您可能会认为myVector.size()
为您提供了行号,而另一方面,myVector[0].size()
或myVector[n].size()
的任何有效范围“ n”的行都为您提供了该列该特定行的编号。如果列和行号相同,那么只需检查一下即可解决您的问题。