std::map mit zufälligen Paaren über generate_n füllen
-
Hallo,
ich versuche eine map mit zufälligen Werten zu füllen. Dazu möchte ich generate_n folgendermaßen verwenden:
#include <algorithm> #include <ctime> #include <iterator> #include <map> using namespace std; map<int, int>::value_type generatePair() { return map<int, int>::value_type( rand(), rand() ); } int main() { srand( static_cast<unsigned int>(time( NULL ))); map<int, int> data; generate_n(inserter(data, data.begin()), 1000, generatePair); return 0; }Dies führt jedoch zu nicht identifizierbaren Templatefehlermeldungen im Stile von
...undefined reference tooperator delete(void*) ...undefined reference tostd::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)etc.
Ich befürchte, dass der Ansatz gänzlich falsch ist.
Kann mich jemand in die richtige Richtung lenken?
Vielen Dank!
-
Also bei mir wird das fehlerfrei compiliert und es werden zufällige Werte erzeugt.
-
läuft einwandfrei.
daher bitte mehr details
-
Das war natürlich nen Bock von mir. Habs jetzt aber hinbekommen

Wens interessiert hier eine Version mit Lambdaausdruck:
#include <algorithm> #include <ctime> #include <iostream> #include <iterator> #include <map> using namespace std; int main() { srand( static_cast<unsigned int>(time( NULL ))); map<int, int> data; generate_n(inserter(data, data.begin()), 1000, [] () { return map<int, int>::value_type( rand(), rand() ); }); for_each(data.begin(), data.end(), [](pair<int, int> p) { cout << p.first << "\t" << p.second << endl; }); return 0; }Auf jeden Fall vielen Dank fürs Augenöffnen
