【问题标题】:Fail to insert the element of the set to the vector in c++无法将集合的元素插入C++中的向量
【发布时间】:2015-12-14 13:02:04
【问题描述】:

给定一组整数:

set<int> setA = {1,2,3,4,5};

现在我想在特定条件下将整数插入整数向量:

vector<int> vectorB;
for (set<int>::iterator it = setA.begin(); it != setB.end(); it++){

      if (*it % 2 == 0){
      }else{
        vectorB.insert((*it));
        count += 1;
       }
}

但我得到一个错误:

error: no matching function for call to 'std::vector<int>::insert(const int&)'

为什么?

【问题讨论】:

  • en.cppreference.com/w/cpp/container/vector/insert - 实际上没有任何“官方”C++ 文档,但 cppreference 非常好。
  • 要简单地添加(没有其他要求)元素到集合中,您应该使用push_back 而不是insert
  • @LightnessRacesinOrbit 实际上我做到了。但我无法立即找到答案。现在我明白了。谢谢。
  • 如果您无法“立即”找到答案,请多花几分钟时间阅读。并非所有事情都可以“立即”解决。需要一些耐心。
  • @yobichi Surly 写这个问题比阅读descriptionstd::vector::insert 花费更长的时间?

标签: c++ vector insert


【解决方案1】:

正如其他人在 cmets 中提到的那样,在这种情况下您不应该使用 insert,而应该使用 push_back

vectorB.push_back(*it);

如果您想要插入新元素的特定位置,您通常会使用insert。如果您对将元素添加到特定位置不感兴趣,那么您可以使用push_back 来(顾名思义)将元素添加到向量的末尾。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多