我要做到以下几点:布尔运算符,有没有简单的方法来做到这一点在C + +?
time_heap.insert(aid.arrival(event)!=NULL);
即插入的aid.arrival(event)
返回值的time_heap如果不是NULL
。
这是一个在我的程序的主要控制中会发生很多操作,并希望有一个简单的方法来在C++中执行它(除了定义我自己的函数来处理它)
186 void insert_event(Event* value) {
187 heap.push_back(value); // expand size of heap
188 int i = heap.size() - 1; // set heap index to that of "value"
189 int parent = floor((i - 1)/2);
190
191 while (parent >= 0 && parent < heap.size()) { //check that parent is valid
192 if (*heap[parent] > *value) {
193 heap[i] = heap[parent];
194 heap[parent] = value; // if "value" is smaller than parent move it up in heap (swap)
195 i = parent; // set new index of "value"
196 parent = floor((i - 1)/2); // set new parent of "value"
197 }
198 else // if parent is not larger, value satisfies min-heap condition (since all below are lower, too)
199 break; // (i.e. we are done)
200 }
201 }
你想在返回值为NULL时插入一些东西吗? 'insert'方法需要什么类型? – juanchopanza
如果它是一个指针的容器,那么它可能期望一个指针。 – tadman
你自己的方法有什么问题吗?如果您决定将存储从堆更改为其他内容或在稍后添加新的插入条件,它肯定会让您更轻松。不要重复自己。 –