Список <MyClass *> и вопрос массива - PullRequest
0 голосов
/ 17 мая 2010

Если принять такое определение,

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 ]

1 голос
/ 17 мая 2010

Если вы хотите массивировать поведение и использовать оператор индекса, вы должны использовать std::vector, а не std::list. Затем вы можете использовать его как массив для доступа и замены элементов.

1 голос
/ 17 мая 2010

Списки не поддерживают произвольный доступ.Вам нужно переключиться на другой тип контейнера, который это делает, или перебирать список, пока не дойдете до нужного элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...