如何替换向量图中的向量值?

Posted

技术标签:

【中文标题】如何替换向量图中的向量值?【英文标题】:how to replace value of vector in map of vector? 【发布时间】:2017-12-21 18:45:52 【问题描述】:

我正在尝试将向量映射中的字符串向量的值更改为 -1,如下面的代码所示,但是当我显示数据时它保持不变。

map <std::string, vector <string>> amap;
map<std::string, vector<string> >::iterator it=amap.begin();
//it is iterator of map
 it=amap.begin();
for(;it != amap.end(); ++it)
   
        vector<string> intvec = it->second;
          for(int j=i+1;j<intvec.size();j++)
                          str2=intvec[j];

                       intvec.at(j)="-1";
      
   

我想将 -1 放在地图特定键的特定向量索引中。 请帮忙:)

【问题讨论】:

int y = 10; int x = y; x = 8; -- 这不会将y 的值更改为 8。与您的代码类似。 【参考方案1】:

我正在尝试将向量映射中的字符串向量的值更改为 -1,如下面的代码所示,但是当我显示数据时它保持不变。

那是因为您正在修改副本,而不是地图内的矢量。

线

vector<string> intvec = it->second;

制作矢量的副本,然后您正在修改副本。更改该行以使用引用类型:

vector<string>& intvec = it->second;
//            ^^

【讨论】:

【参考方案2】:

如果您使用 C++11,您可以使用 auto 关键字和基于范围的循环。这将完成您想要完成的工作(尽管我不确定您为什么要这样做)。请注意,这会将地图中的每个值都设置为“-1”。

std::map <std::string, std::vector<std::string> > aMap;
for (auto& kv : aMap)

    // aMap has key value pairs kv.first and kv.second
    for (auto& str : kv.second)
    
        str = "-1";
    

【讨论】:

以上是关于如何替换向量图中的向量值?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python JAX/Autograd 的向量值函数的雅可比行列式

如何在向量图中替换向量的值?

使用 ggplot 在折线图中仅绘制 x 轴上的日期向量的值

布隆过滤器

MATLAB中向量数组的向量范数

在 R 中使用 switch() 替换向量值