2014-12-07 4 views
13

У меня есть вектор вроде этого:размер столбца и размер строки вектора 2D в C++

vector< vector<int> > myVector; 

Все номера строк и столбцов являются одинаковыми в этом векторе.

Я хочу найти количество строк и количество столбцов этого вектора.

Для подсчета строк я придумал:

myVector[0].size(); 

Для подсчета столбца, я не могу придумать что-нибудь. Можете ли вы сказать мне, правильно ли подсчет строк, и можете ли вы рассказать мне, как я могу получить количество столбцов? Благодарю.

ответ

9

У вас есть вектор целочисленных векторов myVector[0].size() возвращает вам количество элементов в первом векторе int в векторе 2d.

Структура такого вектора выглядит следующим образом:

myVector[ 
    Vector[0, 4, 2, 5], 
    Vector[1, 4, 2] 
]; 

При вызове для myVector [1] .size() он будет возвращать 3 и [0] будет возвращать 4.

для количество строк (INT векторов) в 2d вектора, вы можете просто использовать 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
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-й строке. Кодовый код может использоваться для итерации через переменный двумерный вектор.

Смежные вопросы