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

jas*_*son 22 c++ vector

我有这样的矢量:

vector< vector<int> > myVector;
Run Code Online (Sandbox Code Playgroud)

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

我想找到这个向量的行数和列数.

对于行数,我提出:

myVector[0].size();
Run Code Online (Sandbox Code Playgroud)

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

Kil*_*ari 22

你有一个整数向量向量 myVector[0].size()返回2d向量中第一个int向量中的元素数量.

这种向量的结构如下所示:

myVector[
  Vector[0, 4, 2, 5],
  Vector[1, 4, 2]
];
Run Code Online (Sandbox Code Playgroud)

当你调用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;
}
Run Code Online (Sandbox Code Playgroud)


Man*_*ddi 6

for(int i=0;i<v.size();i++){
    for(int j=0;j<v[i].size();j++){
        cout<<v[i][j]<<" ";
    }
    cout<<endl;
}
Run Code Online (Sandbox Code Playgroud)

在此,v是一个二维矢量,其大小取决于列的大小。使用v.size()可以得出行的总数,而v [i] .size()可以给出第i行的列总数。以下代码可用于迭代变化的二维向量。


小智 5

在 C++ 中:

vector<vector < int > > matrix;

cout << "Row's Length: " << matrix.size();
cout<< "Column's Length: "<< matrix[0].size();
Run Code Online (Sandbox Code Playgroud)

在Java中:

int[][] matrix;

System.out.println("Row's Length: " + matrix.length);
System.out.println("Column's Length: " + matrix[0].length);
Run Code Online (Sandbox Code Playgroud)