有 vector<int> v = {1, 2, 3};,以及下面两段代码。
代码一:
for (int x : v) cout << x << " ";
代码二:
for (auto it = v.begin(); it != v.end(); ++it)
cout << *it << " ";
关于两段代码的关系,说法正确的是( )。
- A. 输出完全相同:范围 for 就是迭代器循环的语法糖,编译后干的就是代码二这件事
- B. 输出不同:范围 for 会跳过第一个元素,从 2 开始输出
- C. 代码一更快:因为它绕开了迭代器,直接按下标访问元素
- D. 输出不同:代码二会额外多输出一个
v.end()位置的值