2014-09-27 47 views
0

我正在努力实例化一个包含一组对的2D矢量(矢量< vector>)。使用一组对作为单元格值实例化一个2D矢量

我没有办法像这样(其中X,Y是整数,代表矢量尺寸):

vector< vector< set< pair<int, int> > > > 
     velocities (X, vector<int>(Y, set < pair<int, int> >)); 

我得到以下编译器错误:

./test.cpp: In function 'int main()': 
./test.cpp:8:70: error: expected primary-expression before '(' token 
    vector< vector< set< pair<int, int> > > > velocities (X, vector<int>(Y, set < pair<int, int> >)); 
                    ^
./test.cpp:8:96: error: expected primary-expression before ')' token 
    vector< vector< set< pair<int, int> > > > velocities (X, vector<int>(Y, set < pair<int, int> >)); 

当执行以下代码:

#include <vector> 
#include <set> 
#include <utility> 
using namespace std; 

int main() { 
    int X = 10, Y = 10; 
    vector< vector< set< pair<int, int> > > > velocities (X, vector<int>(Y, set < pair<int, int> >)); 
    return 0; 
} 
+1

以何种方式失败? – 2014-09-27 14:29:14

+0

我加了编译器错误和一个例子。 – bengro 2014-09-27 14:32:53

回答

1

看来你想要的是:

std::vector< std::vector< std::set<std::pair<int, int> > > > 
    velocities (X, std::vector<std::set<std::pair<int, int>>>(Y)); 

Live example