c++ 又有问题...为什么我会这么笨....

来源:百度知道 编辑:UC知道 时间:2024/06/16 23:43:47
不是很复杂的问题...只是想问下:

vector<vector<int> > b(a[0].size(), vector<int>(a.size()));

这句话的a[0].size() 和 vector<int>(a.size())代表什么?又是什么意思?

代码如下:

#include<iostream>
#include<iomanip>
#include<fstream>
#include<vector>
#include<conio.h>
using namespace std;

vector<vector<int> > a; //全局变量
void input();
void transpose();
void print();

int main()
{
input();
transpose();
print();
getch();
}
void input()
{
ifstream in("a.txt");
int row, col;
in>>row>>col;
a.resize(row, vector<int>(col));
for(int i=0; i<row; ++i)
for(int j=0; j<col; ++j)
in>>a[i][j];
}
void transpose()
{
vector<vector<int> > b(a[0].size(), vector&l

说实话实际开发中没人故意这样给自己找麻烦的...
是这样的
vector有四种构造函数:
vector();
vector( size_type num, const TYPE &val );
vector( const vector &from );
vector( input_iterator start, input_iterator end );
在你的代码里,a,b都是一个vector<int>类型的vector,而很明显a的初始化vector<vector<int> > a; //全局变量 是用第一种构造函数,而b则是用的第二种构造函数,这里的TYPE就是vector<int>.所以就很清楚了吧?
呵呵.想想,其实很简单.
以后遇到这种问题,就先从最基本的开始,比如这个问题,入手点就是他的构造函数的格式.