-1

您好专家,请原谅我的愚蠢问题。我正在尝试使用 Sanders 教授的 4heap 优先级队列,可在:

http://www.mpi-inf.mpg.de/~sanders/programs/spq/heap4.h

在一个函数里面我可以很容易地做到:

Heap4<int, int> myHeap(myMax, -myMax, 10000);

问题是,我想在结构中分离 myHeap 的定义和初始化,例如:

struct myStruct{
Heap4<int, int> myHeap;

void myInit(){
    myHeap=....
}

};

因为我想避免通过引用在同一个结构中使用它的其他函数来传递 myHeap。这可能吗?

4

1 回答 1

1

尽管您可能应该myHeap在构造函数初始化列表中进行初始化,但您可以通过以下方式在函数中为其赋值:

myHeap = Heap4<int, int>(myMax, -myMax, 10000);

编辑因为它似乎Heap4没有默认构造函数,那么您必须在构造函数初始化列表中对其进行初始化:

struct myStruct
{
  Heap4<int, int> myHeap;
  myStruct() : myHeap(myMax, -myMax, 10000) {}
};
于 2013-07-19T15:46:48.330 回答