【问题标题】:Trying to create a 3 dimensional vector in c++试图在 C++ 中创建一个 3 维向量
【发布时间】:2016-05-07 00:24:38
【问题描述】:

所以,我尝试创建一个 3 维 5x3x2 向量,使用向量库并在每个节点中保存数字 4。

这就是我正在尝试的:

vector<vector<vector<int> > > vec (5,vector <int>(3,vector <int>(2,4)));

对于在每个节点中保存 int 6 的二维 5x8,这是有效的:

vector<vector<int> > vec (5,vector <int>(8,6));

【问题讨论】:

  • 3D 矢量类似于 。您说的是 3D 数组(使用向量的向量进行模拟)。一个向量是一个一维数组,不管它有多少维。
  • 请不要这样做。使用boost::multi_array
  • @KarlKnechtel 由于许可或构建占用空间的限制,使用 Boost 可能并不适合所有人。

标签: c++


【解决方案1】:

您几乎猜对了——第二个嵌套的vector 应该是vector&lt;vector&lt;int&gt; &gt;,而不仅仅是vector&lt;int&gt;

vector<vector<vector<int> > > vec (5,vector<vector<int> >(3,vector <int>(2,4)));

【讨论】:

    【解决方案2】:

    您也可以声明这种形式:

    // first form
    typedef vector<int> v1d;
    typedef vector<v1d> v2d;
    typedef vector<v2d> v3d;
    v3d v(5, v2d(3, v1d(2, 4)));
    
    // second form
    vector<vector<vector<int> > > v = vector<vector<vector<int> > >( 5, vector<vector<int> >(3, vector<int>(2, 4)))
    

    【讨论】:

      猜你喜欢
      • 2011-08-11
      • 2013-10-03
      • 1970-01-01
      • 2021-02-26
      • 2016-10-18
      • 1970-01-01
      • 2020-09-19
      • 1970-01-01
      • 2020-05-24
      相关资源
      最近更新 更多