【发布时间】:2019-10-13 11:08:36
【问题描述】:
我刚开始使用 c++ stl,我无法找出错误...非常感谢您的帮助...
int count = 0 ;
while (!s.empty())
{
s.erase(--s.end());
set<int >::iterator it;
for (it = s.begin(); it != s.end(); it++)
{
if (*it > 0)
* it -= r; //*error : expression must be modifiable lvalue
//r is a constant
else
s.erase(it);
}
count++;
}
cout << count;
【问题讨论】:
-
如果
s是set你不能用*it -= r;修改value_type,set中的所有项目都是只读的。通过修改此元素,您将重新排列集合中的所有项目。