今天在使用vector的二维数组,遇到一个问题。
目的是想使用vector定义一个确定维数的数组,即是数组中每个元素都为一个容器。去网上搜索了一下格式vector<vector<string> > shit (注意string后的尖括号后面哟哟个空格),否则被认为格式错误。 而要确定维数 则必须像上述那样vector<vector<string> > shit(360) (注意此处是圆括号 不是尖括号)。使用时候如下面的例子
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector< vector<int> > a(20);
for(int i = 0; i < 20; i++)
{
for(int j = 0; j < 20; j++)
{
a[i].push_back(i*j);
}
}
for(int i = 0; i < 20; i++)
{
for(int j = 0; j < 20; j++)
{
cout << a[i][j] << " " ;
}
cout << endl;
}
return 0
而在类中定义如此的成员函数的时候,此格式实际上已经初始化了,因此 并不能把此格式应用到类的成员函数中,突发解决方法:
首先定义
class Cxx
{
public:
vector<vector<string> > shit
}
Cxx::Cxx():shit(360)
{
……
}
问题解决~