c++ - 访问嵌套的容器成员

标签 c++ stl

我正在尝试使用嵌套容器创建一个二维数组。我想打印它的成员。谁能帮帮我。我是 STL 的新手。 提前致谢。

typedef vector<int> v;
 vector<v>v1;
 v1.push_back(v(45,67));
 v1.push_back(v(36,89));
 v1.push_back(v(27,81)); 
 v1.push_back(v(18,78));

最佳答案

你打印这样的元素:

for(size_t i = 0, mi = v1.size(); i < mi; i++)
{
    for(size_t j = 0, mj = v1[i].size(); j < mj; j++)
        cout << v1[i][j] << ' ';
    cout << '\n';
}

然后您会看到您实际上创建了一个包含以下内容的数组:

{67,67,67,...,67}, // 45 times
{89,89,89,...,89}, // 36 times
{81,81,81,...,81}, // 27 times
{78,78,78,...,78}, // 18 times

可能不是您所期望的。

关于c++ - 访问嵌套的容器成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4496633/

相关文章:

c++ - 带有 MoveConstructible 对象的 std::push_heap 和 std::pop_heap

c++ - 在 C++ 中迭代 vector 的 vector

c++ - 传递继承类的成员仿函数

c++ - 如何在 VS 2008 中编译 64 位 native C++ DLL?

c++ - Qt5-QML : How to modify bindings to change Text after ProgressBar finishes loop

c++ - 初始化 std::byte 容器的正确方法

c++ - 将数据从 std::vector 传递到 std::valarray 的最有效方法

c++ - STL容器内存问题

c++ - 他们如何在没有显式模型(又名概念图)的情况下避免基于概念的重载问题

c# - 建议放置 make_public pragmas 的位置