m0_37980902
Tester20001000
采纳率40%
2018-08-18 06:26

C++ STL deque实现过程中的问题

5
已采纳

各位好,

实现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 tangchuxian080 3年前

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

    点赞 评论 复制链接分享
  • m0_37980902 Tester20001000 3年前

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

    点赞 评论 复制链接分享
  • tangchuxian080 tangchuxian080 3年前

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

    点赞 评论 复制链接分享

为你推荐