Я неправильно использую copy_if?

Я использую Visual Studio 2010, и я пытаюсь использовать std :: copy_if, Я хочу скопировать все значения, удовлетворяющие предикату. Например:

struct comp
{
    bool operator()(const int i) { return i == 5 || i == 7; }
};

int main()
{
    array<int, 10> arr =  { 3, 2, 5, 7, 3, 5, 6, 7 };
    vector<int> res;
    copy_if(arr.begin(), arr.end(), res.begin(), comp());

    for(int i = 0; i < res.size(); i++)
    {
        cout << res[i] << endl;
    }

    return 0;
}

Но когда я запускаю этот код, я получаю: векторный итератор не увеличивается.

29
задан Björn Pollex 25 March 2011 в 13:03
поделиться