请考虑以下示例:
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>*; 我怎么能做到这一点?
你为什么不简单地解除引用x?
for (auto c : *x) { // Here
cout << c << ",";
}
Run Code Online (Sandbox Code Playgroud)
它将*x通过引用,因此,不会复制.