现在的位置: 首页 > 综合 > 正文

标准库容器怎样移除与某一值相等的所有元素

2013年10月03日 ⁄ 综合 ⁄ 共 348字 ⁄ 字号 评论关闭

vectors 并未提供任何函数可以直接移除"与某值相等"的所有的元素.这是算法发挥威力的时候。
以下语句可将所有其值为 val 的元素移除:
std::vector<Elem> coll;
...
// 移除所有与 val 值相等的元素.
coll.erase(remove(coll.begin(), coll.end(), val), coll.end());

 

如果只是要移除"与某值相等"的第一个元素, 可以这样做
std::vector<Elem> coll;
//...
std::vector<Elem>::iterator pos;
pos = find(coll.begin(), coll.end(), val);

if (pos != coll.end())
{
 coll.erase(pos);
}

 

以上摘自《C++ 标准程序库》 p154

抱歉!评论已关闭.