c++ - C++11 中带有指向 vector 指针的基于范围的 for 循环

标签 c++ c++11 vector

考虑以下示例:

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 << ",";
}

我想遍历 vector<char>* 的值;我怎样才能做到这一点?

最佳答案

为什么不简单地取消引用 x

for (auto c : *x) { // Here
    cout << c << ",";
}

它将通过引用获取*x,因此不会复制。

关于c++ - C++11 中带有指向 vector 指针的基于范围的 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31744125/

相关文章:

c++ - 为有序链表 C++ 编写插入算法

c++ - 什么时候在 `std::move()` 函数中调用 move 构造函数?

c++ - 在 CentOS 6.4 上使用 Boost.Regex 1.53 和 gcc 4.8.1 随机断言失败

c++ - 在递归函数中打印 C++ 中的累计和

c++ - 找到一堆元素的位置

c++ - 在可变函数调用中执行一次语句

c++ - 从成员结构的成员函数中访问类的成员?

c++提取小数解错误

c++ - 将派生类中的对象插入到所述对象的另一个实例中(使用 vector.insert 函数)C++

c++ - 字符串 pop_back 函数错误