无法将集合的元素插入C++中的向量
Posted
技术标签:
【中文标题】无法将集合的元素插入C++中的向量【英文标题】:Fail to insert the element of the set to the vector in 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 写这个问题比阅读description 的std::vector::insert
花费更长的时间?
【参考方案1】:
正如其他人在 cmets 中提到的那样,在这种情况下您不应该使用 insert
,而应该使用 push_back
vectorB.push_back(*it);
如果您想要插入新元素的特定位置,您通常会使用insert
。如果您对将元素添加到特定位置不感兴趣,那么您可以使用push_back
来(顾名思义)将元素添加到向量的末尾。
【讨论】:
以上是关于无法将集合的元素插入C++中的向量的主要内容,如果未能解决你的问题,请参考以下文章