【发布时间】:2018-01-18 19:49:57
【问题描述】:
我有 2 个双精度向量:t 和 P。它们的大小是m。
我想检查条件:|t[i]-t[i+1]| < dT 用于向量 t 和 |P[i]-P[i+1]| < dP 用于向量 P。
如果条件正确,我应该删除t[i+1]元素(或P[i+1]元素)。
我的代码:
//fill vectors
for (unsigned int i = 0; i < t.size() - 1; i++)
if (abs(t[i] - t[i + 1]) < dT)
t.erase(t.begin() + (i + 1));
for (unsigned int j = 0; j < p.size() - 1; j++)
if (abs(p[j] - p[j + 1]) < dP)
p.erase(p.begin() + (j + 1));
当我使用erase按索引删除时,这是正确的方法吗?
【问题讨论】:
-
将std::remove_if 函数用作erase-remove idiom 的一部分。
标签: c++ algorithm vector stl erase