這是我自己實現了一個堆(用於算法競賽)。還有一些我無法收回編譯錯誤......無效使用非靜態數據成員的
\Map_Heap.cpp|13|error: invalid use of non-static data member 'MapHeap<DT>::nv'|
\Map_Heap.cpp|19|error: from this location|
代碼:
#include<cstdio>
#include<cstring>
const int HEAP_SIZE=10005;
template<class DT>
struct MapHeap
{
DT f[HEAP_SIZE+5];
int mp1[HEAP_SIZE+5];//val -> index
int mp2[HEAP_SIZE+5];//index -> val
int nv;///line 13
MapHeap():nv(0)
{
memset(mp1,-1,sizeof(mp1));
memset(mp2,-1,sizeof(mp2));
}
void print(int n=nv)//line 19
{
for(int i=1;i<=n;i++) printf("%d ",f[i]);
puts("");
for(int i=1;i<=n;i++) printf("%d ",mp1[i]);
puts("");
for(int i=1;i<=n;i++) printf("%d ",mp2[i]);
puts("");
}
};
在前面有一些有趣的**。這些是代碼的一部分,還是你試圖使該行變爲粗體?因爲這在代碼中不起作用。 – Thomas 2012-03-25 19:51:24
我只是試圖使該行粗體,我發現它不起作用...> _ < – Sayakiss 2012-03-25 19:53:58