小编Avi*_*iss的帖子

使用基于范围的for循环填充指针向量

这个用向量元素的地址填充指针向量的代码v工作正常:

#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<int> v{ 1,2,3,4,5 };
    vector<int*> pv;
    for (unsigned int i = 0; i < size(v); i++)
        pv.push_back(&(v[i]));
    for (auto i : pv)
        cout << i << " ";
    cout << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如何使用基于范围的for循环获得相同的结果.我尝试过这样的代码,但它不能正确填充指针的向量:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> v{ 1,2,3,4,5 };
    vector<int*> pv;
    for (auto i : v)
        pv.push_back(&i);
    for (auto i : pv)
        cout << i << " …
Run Code Online (Sandbox Code Playgroud)

c++ for-loop ranged-loops

1
推荐指数
1
解决办法
91
查看次数

标签 统计

c++ ×1

for-loop ×1

ranged-loops ×1