【发布时间】:2018-05-02 01:09:18
【问题描述】:
我是 C++ 新手,我已经声明了一组集合:
std::set< std::set<int> > return_moves;
并在其中推送了一些值。我想访问该集合的第一个元素,以便可以计算该内部集合中的元素数量。我正在尝试通过
return_moves.begin().size()
我收到此错误:
set_diff.cpp: In function ‘int main()’:
set_diff.cpp:62:47: error: ‘std::set<std::set<int> >::iterator {aka struct std::_Rb_tree_const_iterator<std::set<int> >}’ has no member named ‘size’
请帮我纠正我的语法。
【问题讨论】:
-
s/
return_moves.begin().size()/return_moves.begin()->size() -
一个集合没有第一个元素的概念。
-
@EdHeal 然后访问任何元素我应该循环它吗?
-
@SachinSingh 错误信息很清楚,不是吗?你有一个
std::set<std::set<int> >::iterator而不是std::set<int>。 -
迭代器在某种意义上就像一个指针,你需要
->而不是.来访问元素大小(而不是迭代器大小,它不存在。)