如何使用满足某些条件的另一个向量的数据填充std :: vector

Mik*_*Mik 4 c++ stl vector

我有一个点矢量,我需要得到距离小于给定点的值的那些点.

我可以用一个简单的循环来做,但有更好的方法吗?

提前致谢

Phi*_*ter 10

用途std::remove_copy_if:

#include <algorithm>
#include <vector>
#include <iostream>
#include <functional>
#include <iterator>

int main() {
    std::vector<int> v;
    v.push_back(3);
    v.push_back(2);
    v.push_back(6);
    v.push_back(10);
    v.push_back(5);
    v.push_back(2);
    std::vector<int> v2;

    std::remove_copy_if(v.begin(), v.end(), back_inserter(v2),
            std::bind2nd(std::greater<int>(),5));

    std::copy (v2.begin(), v2.end(), std::ostream_iterator<int>(std::cout));
    std::cout << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

remove_copy_if将序列复制到每个未通过谓词的项的输出迭代器.在这种情况下,谓词是"x> 5".copy_if对于通过谓词测试的每个项目,似乎没有等价物,但是你总是可以用谓词来否定谓词std::not1.