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 **',为什么我看别人也这样做的没有报这个错误呢?谢谢


心有法竹
浏览 865回答 2
2回答

慕仙森

刚我试了一下,二维数组的首地址和二级指针确实有区别。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];试下行不应该是指针的类型不同
打开App,查看更多内容
随时随地看视频慕课网APP