gpt4 book ai didi

c++ - 如何使用初始化列表循环来修改元素?

转载 作者:IT老高 更新时间:2023-10-28 23:04:06 25 4
gpt4 key购买 nike

我可以使用初始化列表轻松模拟 for .. in 循环以进行读取访问

std::list<int> foo, bar, baz;

int main()
{
foo.push_back(3);
foo.push_back(2);
bar.push_back(1);
for (auto &x : {foo, bar, baz}) {
// x.push_back(42);
std::cout << x.size() << std::endl;
}
return 0;
}

打印出来:

2
1
0

我应该怎么做才能修改实际对象,就像在注释行中一样:

// x.push_back(42);

最佳答案

我们从 C 中知道的基于指针的技巧可以应用如下

  for (auto x : { &foo, &bar, &baz }) {
x->push_back(42);
std::cout << x->size() << std::endl;
}

但是,这假设您实际上想要使用 原始 对象,而不是它们的拷贝。 (您最初发布的代码实际上适用于拷贝。)

关于c++ - 如何使用初始化列表循环来修改元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44391520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com