【发布时间】:2017-07-16 12:17:34
【问题描述】:
class pair
{
public:
int a, b;
pair(int tmp_a, int tmp_b)
{
a = tmp_a;
b = tmp_b;
}
};
int main()
{
list<pair> l;
l.push_back(pair(1,6));
l.push_back(pair(2,7));
l.push_back(pair(3,8));
l.push_back(pair(4,9));
l.push_back(pair(5,10));
for (auto& pair_item : l/*std::list<pair>::iterator i = l.begin(); i != l.end(); i++*/) //Edited
{
// print/modify the member variables in the object that iterator i points to
}
return 0;
}
(参考代码)
该列表具有类型对的元素。假设我希望修改列表中的元素(类型对的对象),例如将 b 更改为 b + a。这样的操作怎么做?
【问题讨论】:
-
您使用(仍然正确,但)老式 for 循环而不是范围 for 的任何特殊原因?
-
我还不太习惯。我以前在很多场合都使用过基于范围的循环,但在这个特殊场合,它并没有打动我。我想我更专注于我遇到的问题。
-
@PuneetSingh 如果您的代码有问题,您应该在问题中明确说明(逐字错误消息)。