1

これは私のコードです:

for (std::list<std::wstring>::iterator itr  = kb->titles.begin(); itr != kb->titles.end() ; itr++)
    {
        _size += *itr.size();
    }

私がやろうとしているのは、リストに含まれるすべての wstring にアクセスし、その size() メンバー関数を呼び出すことです。ただし、 itr が指すのは反復された wstring 要素ではないようで、エラーが発生します (エラー C2039: 'size' : is not a member of 'std::_List_iterator<_Mylist>')。

あなたが何kbなのか疑問に思っている場合、それは構造体へのポインタであり、std::list<std::wstring> titles;そのメンバーの1つです。

これを修正する方法についてのアイデアはありますか?

4

2 に答える 2

8

ここでは演算子の優先順位が問題です。試してみてください

_size += (*itr).size();

またはさらに良いことに、

_size += itr->size();
于 2012-04-17T18:57:09.177 に答える
3

括弧がありません:

_size += (*itr).size();
_size += itr->size();

両方が機能するはずです。

于 2012-04-17T18:57:51.607 に答える