C++ 中二维向量的列大小和行大小

问题描述 投票:0回答:8

我有一个像这样的向量:

vector< vector<int> > myVector;

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

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

对于行数,我想出了:

myVector[0].size();

对于列数,我想不出任何办法。您能告诉我行数是否正确以及如何获得列数吗?谢谢。

c++ vector
8个回答
46
投票

你有一个整数向量的向量

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

7
投票
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 行中的总列数。 以下代码可用于迭代变化的二维向量。


5
投票

在 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);

2
投票

要查找 2D 矢量中的行数,您可以简单地使用 vector_name.size()。 这将返回向量的大小。 要查找第 I 行中的列数,请使用 vector_name[i].size()


2
投票
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 循环找到每行中的元素数量。


1
投票

vector_name.size() 为您提供 2D 向量中的列数,vector_name[0].size() 为您提供 C++ 中 2D 向量中的行数。


0
投票

对于 2D 类向量,

 vector< vector<int> > myVector
首先你可能会注意到一种模式,即向量的向量,第一个向量是基向量,第二个向量位于该向量之上,所以在类数组的情况下,
arr[5][6]
5 是行数,6 是列数。与
vector< vector<int> > myVector
类似,您可能会认为
myVector.size()
为您提供行号,而在另一边
myVector[0].size()
myVector[n].size()
行“n”的任何有效范围为您提供该特定行的列号。如果列和行相同,那么只需一项检查即可解决您的问题。


0
投票

我认为你的问题是你想要输入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;
}

这可以解决你的问题 这就是输入行和列的邻接矩阵大小的方法

© www.soinside.com 2019 - 2024. All rights reserved.