如何修改C++迭代器指向位置的元素值?
修改迭代器指向元素值的简单方案
对于你给出的代码场景,直接解引用迭代器就能修改它指向的元素值——因为max_element返回的是指向vector中最大元素的可写迭代器(只要你的vector不是const类型)。
具体代码示例:
#include <vector> #include <algorithm> #include <iostream> int main() { std::vector<int> v = {1,2,3,4,5}; auto it = std::max_element(v.begin(), v.end()); // 将迭代器指向的元素替换为10 *it = 10; // 打印验证结果 for (int num : v) { std::cout << num << " "; // 输出:1 2 3 4 10 } return 0; }
需要注意的是,如果你的vector是const std::vector<int>类型,那max_element返回的是const_iterator,这种情况下无法通过迭代器修改元素值,但你的示例中是普通的非const vector,完全可以用这种方式修改。
内容的提问来源于stack exchange,提问作者Shefali Kanaujia
相关产品推荐
相关产品推荐

