c++ - 在 C++ 中填充二维 vector

标签 c++ vector 2d-vector

我试图用字符填充 C++ 中的二维 vector ,但是当我运行这段代码时,它以一行字符 (*..) 结尾。

我怎样才能像这样填充 2D vector : *.* .**

#include <iostream>
#include <vector>

int main()
{
    std::vector<std::vector<char> > vec2D;
    std::vector<char> rowV;

    unsigned int row=2;
    unsigned int col=3;

    char c;
    unsigned int temp=0;

    while(temp!=col)
    {
        while(rowV.size()!=row)
        {
            std::cin>>c;
            rowV.push_back(c);
        }
        vec2D.push_back(rowV);
        ++temp;
    }

    return 0;
}

最佳答案

每次插入后都要清空rowV,否则会被填满,不会再添加其他字符。此外,row 应由 col 交换,反之亦然,否则您将获得 3x2(而不是 2x3)2D vector 。

while(temp!=row)
{
    while(rowV.size()!=col)
    {
        std::cin>>c;
        rowV.push_back(c);
    }
    vec2D.push_back(rowV);
    rowV.clear(); // clear after inserting
    ++temp;
}

关于c++ - 在 C++ 中填充二维 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47639428/

相关文章:

c++ - GCC:在需要复制构造函数时实例化模板构造函数

c# - 如何编写用于将 Qt 信号映射到 C# 事件的包装类(通过 C++/CLI)

python 数据结构 : map<string, vector<int>>

c++ - 尝试在 C++ 中将两个动态创建的矩阵(2d vector )相乘

c++ - 创建基于堆的2D数组而不使用双指针语法?

.net - 哪些技术适用于可通过 http 访问数据库的 Windows 数据库应用程序

c++ - 编写 C++ API - 如何保持对 API 内部对象的外部引用?

c++ - 有效地对定义顺序的 vector 子集进行排序

c++ - 如何制作一个 n*n 矩阵的输出文件,通过从用户那里获取 n,成对生成数字?

c++ - 如何在没有内存泄漏的情况下删除对象指针的二维 vector ? C++ 和 SFML