list中如果简单得获得第i个?

解决方案 »

  1.   

    .begin()返回指向第一个元素的迭代器。
    要显示内容就是对迭代器用 *运算
      

  2.   

    好像要遍历吧
    用list不支持随即存储的遍历到n的位置,从头一个一个往下走
      

  3.   


    list是链表,不是数组,所以STL中的list不能够直接通过索引取值。这个是我改的template <class T> 
    class CSJList : public std::list<T>
    {
    public:
    std::list<T>::iterator get_Iterator(LONG index)
    {
    LONG i = 0;
    for (std::list<T>::iterator it=begin(); it!=end(); it++)
    {
    if (i++ == index) return it;
    }
    return NULL;
    } T get_Data(LONG index)
    {
    LONG i = 0;
    for (std::list<T>::iterator it=begin(); it!=end(); it++)
    {
    if (i++ == index) return *it;
    }
    return NULL;
    }
    };
    (以下签名由MyCSDN回复工具生成)
    -----------------------------------------------
    MyCSDN 免费版 - http://community.csdn.net/Expert/TopicView1.asp?id=4608614
      

  4.   

    std::list<CTaskInfo*>::iterator it = NULL; for(it = m_listTaskInfo.begin(); it != m_listTaskInfo.end(); ++ it)
    { CTaskInfo* pTaskInfo = NULL; pTaskInfo = *it;
             }
      

  5.   

    可以用通用算法的advance()
    advance(it,i)