Zusammenstellung Probleme mit unordered set

Ich bin versucht, eine unordered_set aus der C++ - std-Bibliothek. Ich bin mit dem std-namespace.

using namespace std;

Den unordered_set ist innerhalb einer Funktion von mir. Ich möchte es verwenden, um memoize einige Werte.

int do_crazy_calculations(int n) {
    static unordered_set<int> done_before;
    done_before::iterator node_found = done_before.find(n);

    //n has not been seen before, so do calculations and memoize the result.
    if (node_found == done_before.end()) {
        int result = actually_do_calculations(n);
        done_before.insert(n, result);
        return result;
    }

    //n has already been seen before, just return the memoized value.
    else {
        return node_found.get();
    }
}

Jedoch bekomme ich diese compilation error:

CplusplusExperiment.cpp: In der Funktion 'int do_crazy_calculations(int)':

CplusplusExperiment.cpp:10:10: Fehler: 'unordered_set' nicht Namen eine Art

Hersteller: *** [CplusplusExperiment.o] Fehler 1

Allerdings habe ich mit einem Typ versehen unordered_set - int Recht? Was hat dieser Fehler zu bedeuten?

Hast du #include <unordered_set>?
Sind Sie kompilieren mit -std=c++0x?
std::unordered_set<int>::insert nicht nehmen, zwei ints, es dauert nur eine. Vielleicht sind Sie denken std::map?

InformationsquelleAutor dangerChihuahua007 | 2012-01-31

Schreibe einen Kommentar