Tester20001000
2018-08-18 06:26
采纳率: 40%
浏览 1.1k

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 **',为什么我看别人也这样做的没有报这个错误呢?谢谢
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • tangchuxian080 2018-08-18 07:21
    已采纳

    刚我试了一下,二维数组的首地址和二级指针确实有区别。
    m_map = new stNode*[m_mapSize][NULL];改为
    m_map = new stNode*[m_mapSize];这种形式
    就可以了

    已采纳该答案
    打赏 评论
  • tangchuxian080 2018-08-18 06:52

    m_map = new stNode*[m_mapSize][NULL];改为
    m_map = new stNode[m_mapSize][NULL];试下行不
    应该是指针的类型不同

    打赏 评论
  • Tester20001000 2018-08-18 11:04

    问题已经找到了,这种初始化的方式不对
    stNode** m_mapTemp = new stNode*[m_mapSize]
    for (int i =0;i<m_mapSize+2;i++)
    {
    m_map[i]= NULL;
    }
    这样就可以了

    打赏 评论

相关推荐 更多相似问题