基于循环的范围,带有指向C++ 11中向量的指针

Lu4*_*Lu4 1 c++ vector c++11

请考虑以下示例:

vector<vector<char>*> *outer = new vector<vector<char>*>();
{
    vector<char> *inner = new vector<char>();

    inner->push_back(0);
    inner->push_back(1);
    inner->push_back(2);

    outer->push_back(inner);

    inner->push_back(3);
}

auto x = outer->at(0);

for (auto c : x) {
    cout << c << ",";
}
Run Code Online (Sandbox Code Playgroud)

我想迭代一下这些值vector<char>*; 我怎么能做到这一点?

Tel*_*kis 6

你为什么不简单地解除引用x

for (auto c : *x) { // Here
    cout << c << ",";
}
Run Code Online (Sandbox Code Playgroud)

它将*x通过引用,因此,不会复制.

  • @Telokis“它会参考它。” 这一点有什么参考吗?谢谢 (3认同)