【问题标题】:How to add an element to a vector in a map如何将元素添加到地图中的矢量
【发布时间】:2015-03-13 21:30:46
【问题描述】:

现在我的代码正在循环遍历一个文本文件并将随后的 kgrams 和字符添加到地图中。键是字符串,值是向量。但是如何将元素添加到与键关联的向量中?

这是添加该值的代码,但它似乎不起作用。

for (int i = 0; i < wrapAround.length(); i++)
{
    temp = i + order;
    kgram[wrapAround.substr(i, temp)].add(temp++); //add value to the vector associated with key
}

稍后我有一个if 声明,以查看稍后的值是否在地图中,但它永远不会是真的......我不知道为什么。

【问题讨论】:

  • 请用您正在使用的编程语言标记您的问题。
  • 您的if 声明如何?请注意,在递增之前添加 temp 的值。事实上,你的增量是多余的。
  • what 的向量究竟是什么?
  • 假设您的向量包含整数,您应该能够将示例中的 add 替换为 push_back 并使其正常工作,但最好用足够的代码构建一个简短的完整示例了解您要做什么。
  • 你知道有documentation for this kind of stuff,对吧?如果您的地图确实包含矢量,那么您的代码甚至不会按原样编译。

标签: c++ dictionary


【解决方案1】:

C++ 中string::substr 的第二个参数是长度而不是结束位置。

尝试像这样访问 k-gram:wrapAround.substr(i, order)

【讨论】:

    【解决方案2】:

    我将把子字符串索引留给您,但要将项目添加到您使用 .push_back().push_front() 的 C++ 向量:

    kgram[..].push_back(temp++);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-12
      • 2019-11-17
      • 1970-01-01
      相关资源
      最近更新 更多