gpt4 book ai didi

c++ - 带引用符号和不带引用符号的迭代器有什么区别。 (C++ 循环)

转载 作者:太空狗 更新时间:2023-10-29 20:39:45 27 4
gpt4 key购买 nike

带 & 符号的迭代器和不带 & 符号的迭代器有什么区别,如以下人为示例中的情况 1 和 2 所示?

我什么时候应该使用其中之一?

#include <iostream>
#include <vector>
int main() {
std::vector<int> v;
v.push_back(1);
v.push_back(2);

// case 1:
for (auto & i = v.begin(); i != v.end(); ++i) {
std::cout << *i << std::endl;
}

// case 2:
for (auto i = v.begin(); i != v.end(); ++i) {
std::cout << *i << std::endl;
}
}

是否与迭代器对象的创建有关,然后代码块中可用什么?我对迭代器非常陌生。

最佳答案

区别在于第一个循环不会被编译。:)

for (auto & i = v.begin(); i != v.end(); ++i) {
std::cout << *i << std::endl;
}

您创建了一个由成员函数 begin 返回的临时对象,并将其与非常量引用绑定(bind)。

关于c++ - 带引用符号和不带引用符号的迭代器有什么区别。 (C++ 循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26737217/

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