C ++中2D向量的列大小和行大小

时间:2014-12-07 06:19:22

标签: c++ vector

我有这样的矢量:

vector< vector<int> > myVector;

此向量中的所有行号和列号都相同。

我想查找此向量的行数和列数。

对于行计数,我提出:

myVector[0].size();

对于列数,我无法想出任何东西。你能告诉我行数是否正确你能否告诉我如何计算列数?感谢。

7 个答案:

答案 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”的行都为您提供了该列该特定行的编号。如果列和行号相同,那么只需检查一下即可解决您的问题。