STL vector

0

Witam,

mam problem z takim programikiem:

#include <iostream>
#include <map>
#include <stdlib.h>
#include <vector>
#include <functional>
#include <ostream>
#include <string>
#include <algorithm>

using namespace std;

int main() {

    vector<int> v;
    v.push_back(11);
    v.push_back(22);
    v.push_back(33);
    v.push_back(44);
    v.push_back(55);

    v.erase(remove_if(v.begin(), v.end(), [](int e) { return e % 2 == 1; }), v.end());

    v.clear();

    return 0;
}

program się nie kompiluje i niestety nie wiem o co chodzi ;/

Z góry dziękuję za jakiekolwiek wskazówki.

1

A jaki daje błąd? Jeśli to GCC to czy masz ustawioną opcję -std=c++0x?

1

Program tak jak jest się kompiluje. Wymaga oczywiście obsługi C++0x, czyli pod gcc flagi jak wyżej podano.

kilka uwag:

#include <stdlib.h>

powinno być

#include <cstdlib>

ale tych inkludów i tak masz za dużo jak na tak krótki program...

vector<int> v;
v.push_back(11);

w C++0x możesz dać

        vector<int> v = {11,22,33,44,55};

albo nawet

        vector<int> v {11,22,33,44,55};
1
v.erase(remove_if(v.begin(), v.end(), [](int e) { return e % 2 == 1; }), v.end());
 [](int e) { return e % 2 == 1; }

Jak się ta funkcja nazywa?
To jakoś alfa, czy beta było, nie?

1

To są nienazwane funkcje lambda.

0

Używam Eclipse (G++ jako kompilator) i niestety dodałem flage dla 0x ale po CTRL + F11 dostaję:

**** Build of configuration Debug for project as ****

make all 
Building file: ../src/as.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -std=c++0x -c -fmessage-length=0 -MMD -MP -MF"src/as.d" -MT"src/as.d" -o"src/as.o" "../src/as.cpp"
../src/as.cpp: In function ‘int main()’:
../src/as.cpp:33: error: expected primary-expression before ‘[’ token
../src/as.cpp:33: error: expected primary-expression before ‘]’ token
../src/as.cpp:33: error: expected primary-expression before ‘int’
make: *** [src/as.o] Error 1

i nie mam pojęcia co zrobić żebym mógł kompilować kod pod Eclipse ;/

Z góry dzięki za porady.

0

G++ musisz mieć w wersji conajmniej 4.6

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0