在C++中,BOOST_FOREACH是一个常用的宏,用于遍历容器(如向量、列表等)中的元素。然而,BOOST_FOREACH宏不支持修改容器中的元素。如果您需要修改向量中的内容,可以使用传统的for循环或者C++11中的范围for循环。
以下是一个使用传统for循环修改向量内容的示例:
#include<iostream>
#include<vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
*it *= 2;
}
for (int i : vec) {
std::cout << i << " ";
}
return 0;
}
以上代码中,我们使用了传统的for循环和迭代器来遍历向量并修改其中的元素。输出结果为:2 4 6 8 10。
如果您想使用C++11中的范围for循环,可以使用以下代码:
#include<iostream>
#include<vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
for (int& i : vec) {
i *= 2;
}
for (int i : vec) {
std::cout << i << " ";
}
return 0;
}
以上代码中,我们使用了范围for循环并将引用类型的变量i传入循环,这样就可以直接修改向量中的元素。输出结果同样为:2 4 6 8 10。
总之,BOOST_FOREACH宏不支持修改容器中的元素,您可以使用传统的for循环或C++11中的范围for循环来实现修改向量内容的功能。
领取专属 10元无门槛券
手把手带您无忧上云