大家好,请原谅我的愚蠢问题。我正在尝试使用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引用在同一结构中使用它的其他函数。这可能吗?
答案 0 :(得分:1)
虽然你可能应该在构造函数初始化列表中初始化myHeap
,但这是你可以在函数内为它赋值的方法:
myHeap = Heap4<int, int>(myMax, -myMax, 10000);
编辑,因为似乎Heap4
没有默认构造函数,那么必须在构造函数初始化列表中初始化它:
struct myStruct
{
Heap4<int, int> myHeap;
myStruct() : myHeap(myMax, -myMax, 10000) {}
};