【问题标题】:initializing 2d vector using only 1 line c++仅使用 1 行 C++ 初始化 2d 向量
【发布时间】:2017-04-14 17:39:05
【问题描述】:

我需要能够在我创建它的同一行初始化一个 int 的 2D 向量。

更具体地说,我必须创建一个 3x2 大小的 2D 向量,并仅使用 1 行代码将其所有值设置为 0。

有没有一种方法可以在不使用 for 循环和几行代码的情况下完成?

【问题讨论】:

  • 提示:查看可用的构造函数,对于vector
  • 1 行代码 是否重要?听起来你需要的是一个语句;一条语句可以多行。

标签: c++ initialization 2d-vector


【解决方案1】:

试试这个:

std::vector<std::vector<int>> twoDimVector(3, std::vector<int>(2, 0));

【讨论】:

    【解决方案2】:

    如果你有小的二维向量(如你所建议的那样),它可以很容易地实现(使用brace-init)。

    #include <vector>
    #include <iostream>
    
    int main(){
    
        std::vector<std::vector<int>> vec{ { 0, 0 }, { 0, 0 }, { 0, 0 } };
    
        std::cout << "vec size = " << vec.size() << "x" << vec[0].size() << std::endl;
    
        return 0;
    }
    

    输出:

    vec size = 3x2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-21
      • 2013-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多