列出<myclass *>&amp;数组问题</myclass *>

时间:2010-05-17 06:01:29

标签: c++ arrays list pointers

假设有这样的定义,

void CConfigTest::OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult) 
{
    NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
    TVITEM item = pNMTreeView->itemNew;
    // find the session of the selected item
    if(item.hItem != NULL)
    {
        HTREEITEM root, parent, node;
        node = item.hItem;
        parent = m_treeSM.GetParentItem(item.hItem);
        root = m_treeSM.GetRootItem();

        while(parent != root && parent != NULL)
        {
            node = parent;
            parent = m_treeSM.GetParentItem(parent); 
        }

        MyCommand* pCmd = (MyCommand*)(m_treeSM.GetItemData(node));
                ....
                ....

我在下面尝试了这些陈述,但都失败了。

pCmd->subList[2]
(pCmd->subList)[2]

如何获取数组成员值(例如subList [2])。我想用其他相同的类型值替换subList [2]的值。谢谢。

2 个答案:

答案 0 :(得分:1)

列表不支持随机访问。您需要切换到另一个容器类型,该类型执行或迭代列表,直到您到达所需的元素。

答案 1 :(得分:1)

如果要像行为一样进行数组并使用下标运算符,则应使用std::vector而不是std::list。然后你可以像使用数组一样使用它来访问和替换元素。