C++ 创建指向更多向量的指针向量
我试图创建一个包含指针的向量,每个指针指向另一个类型为C++ 创建指向更多向量的指针向量,c++,vector,pointers,C++,Vector,Pointers,我试图创建一个包含指针的向量,每个指针指向另一个类型为单元格的向量,我使用一个struct。 下面的for循环允许用户定义指针向量中有多少元素。这是我的密码: vector< vector<Cell>* > vEstore(selection); for (int t=0; t<selection; t++) { vEstore[t] = new vector<Cell>; vEstore[t]->reserve(1000);
单元格的向量,我使用一个struct。
下面的for循环允许用户定义指针向量中有多少元素。这是我的密码:
vector< vector<Cell>* > vEstore(selection);
for (int t=0; t<selection; t++)
{
vEstore[t] = new vector<Cell>;
vEstore[t]->reserve(1000);
}
我不知道如何使用2个值将_向后推
我在想
binpocket[1]->lr1.push_back(10);
binpocket[1]->cw2.push_back(12);
正如我所想,这将取消对binpocket[1]
处的指针的引用,显示目标数组值,然后依次寻址每个元素。
但它没有编译
有人能帮忙吗
…但它只有一个值,并且无论如何都不会编译
Cell cell = { 10, 12 };
binpocket[1]->push_back(cell);
或者,您可以给结构一个构造函数
struct Cell
{
Cell() {}
Cell(unsigned long long lr1, unsigned int cw2)
: lr1(lr1), cw2(cw2)
{
}
unsigned long long lr1;
unsigned int cw2;
};
那你就可以做了
binpocket[1]->push_back(Cell(10, 12));
请注意,
long
是非标准的(尚未),但它是一个普遍接受的扩展。给您的单元格一个构造函数:
struct Cell
{
unsigned long long lr1;
unsigned int cw2;
Cell( long long lv, int iv ) : lr1(lv), cw2(iv ) {}
};
你现在可以这样说:
binpocket[1]->push_back( Cell( 10, 12 ) );
BTW,请注意,长Lon不是标准C++。
这可能是一个非常愚蠢的问题,但是为什么你有两次构造函数,一次空?如果你不提供构造函数,编译器会为你创建一个空缺省(即无参数)构造函数。这意味着你可以做Cell代码>。通过提供自定义构造函数,编译器不会为您创建默认构造函数。这就是我提供它的原因。如果你不想做Cell,你不必这么做代码>。
binpocket[1]->push_back( Cell( 10, 12 ) );