C++ STL deque实现过程中的问题
各位好,
实现deque的构造函数:
stNode** m_map;//map的首地址
MyDeque(){
m_singleListSize = singleListSize ;
m_mapSize = mapSize;
//create a new map
m_map = new stNode*[m_mapSize][NULL];
m_size = 0;
m_indexStart = m_mapSize/2;
m_indexEnd = m_indexStart;
m_singleIndexStart = 0;
m_singleIndexEnd = 0;
}
报的错误是:cannot convert from 'MyDeque<T>::stNode *(*)[1]' to 'MyDeque<T>::stNode **',为什么我看别人也这样做的没有报这个错误呢?谢谢
刚我试了一下,二维数组的首地址和二级指针确实有区别。
m_map = new stNode*[m_mapSize][NULL];改为
m_map = new stNode*[m_mapSize];这种形式
就可以了
m_map = new stNode*[m_mapSize][NULL];改为
m_map = new stNode[m_mapSize][NULL];试下行不
应该是指针的类型不同
问题已经找到了,这种初始化的方式不对
stNode** m_mapTemp = new stNode*[m_mapSize]
for (int i =0;i<m_mapSize+2;i++)
{
m_map[i]= NULL;
}
这样就可以了