如何为以下容器赋值?

Posted

技术标签:

【中文标题】如何为以下容器赋值?【英文标题】:How to assign value to following container? 【发布时间】:2018-01-25 12:18:55 【问题描述】:

谁能告诉如何初始化以下容器? 密钥是固定的,下面两列信息应该根据密钥访问,并且应该可以在迭代过程中更新:

谁能告诉我如何访问以下地图容器中可变大小的列?

map<unsigned int, vector<vector<unsigned int>> > polyMap;



0                0                   20
                 1                   30 
                 2                   40
                 .                    . 
              face(n)           some angles

2                0                   20
                 1                   30 
                 .                   .
              face(m)           some angles

.                .                      .
.                .                      .
.                .                      .
.                .                      .
(`k vertex) (curesponding faces) (and angles)`

大家好,看来我的问题不完整:事情是这样的,我有顶点编号(即 uniq=key)和围绕该顶点的面和各自的角度:下面显示了一个示例

您能否告诉我是否可以为上述目的制作问题中所示的地图容器?

【问题讨论】:

初始化?你什么意思?这将是默认初始化的,如果您想要其他需要告知的内容。访问列?你尝试了什么,它是如何失败的? ... polyMap key1, 1,2,3,4, key2, 5,6,7,8 ; @pergy:不应该。你需要pm[0].resize(1); pm[0][0].push_back(...); 为什么要用这种你不懂的数据结构? 是的,我已经编辑过了.. 【参考方案1】:

你可能想要这样的东西:

#include <map>
#include <vector>
#include <assert.h>

using namespace std;

int main()

  // Declare initialized polyMap
  map<unsigned int, vector<vector<unsigned int>> > polyMap
  
     11,
      
         1,2 ,  3,4 
      
    ,

     22,
      
         5,6 ,  7,8 
      
    
  ;

  // add another element dynamically
  polyMap.insert(pair<int, vector<vector<unsigned int>>>(
     33,
      
         9, 10 , 11, 12 
      
    
    ));


  // check expected outcome for some values 
  assert(polyMap[11][0][0] == 1);
  assert(polyMap[11][0][1] == 2);
  assert(polyMap[22][1][1] == 8);
  assert(polyMap[33][1][1] == 12);

【讨论】:

这看起来令人满意的结果...非常感谢@Michael Walz @Jackyone 如果您觉得这个答案有用,请点赞/接受它,以便其他人知道它很有用。 @Jackyone 不,你没有。您需要单击答案顶部的绿色勾勒复选标记。以tour. @Jackyone :呃,不,你没有。至少,你的点赞不会显示给其他人,因为你没有足够的声望;你可以做的,就是“接受”答案。单击向上/向下投票按钮下的灰色刻度线。这将变为绿色,并将答案标记为“已接受”

以上是关于如何为以下容器赋值?的主要内容,如果未能解决你的问题,请参考以下文章

python:如何为字母赋值?

spring @Value如何为变量java赋值[关闭]

如何为给定字符串中名称的符号赋值

如何为 Java 应用程序构建 docker 容器

如何为 TensorFlow 变量赋值?

如何为“仅获取”的变量赋值?