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':不是 'std::_List_iterator<_Mylist>' 的成员)

如果您想知道 kb 是什么,它是一个指向结构的指针,std::list<std::wstring> titles;它是它的成员之一。

有想法该怎么解决这个吗?

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 回答