Deque push_back
-
Hallo,
#include "stdafx.h" #include <iostream> #include <conio.h> #include <ctime> #include <windows.h> #include <string> /* Container */ #include <list> #include <vector> #include <deque> int main(int argc, _TCHAR* argv[]) { std::vector<int> sample1(10, 8); std::vector<int> sample2(10,8); std::string db[] = { "Hallo", "Hello", "Test", "Haha", "Hoeh?", "Hello?", "Test?", "Haha?" }; srand((unsigned) time(0)); int zrand = rand() % sizeof(db)/sizeof(*db); std::deque<std::string> mydb(10, "empty"); if(sample1 == sample2) { std::cout << "Beide Container gleich." << std::endl; std::cout << "Datenbank:" << std::endl; for(std::string::size_type index = 0; index != mydb.size(); ++index) { std::cout << mydb[index] << std::endl; if(mydb[index] == "empty") { std::cout << "Datenbank leer."; break; } else { std::cout << "Datenbank aktualisiert..." << index << std::endl; } } } else { std::cout << "Container ungleich." << std::endl; std::cout << "Groesse: " << mydb.size() << std::endl; db[zrand].push_back(mydb); // Hier der FEHLER std::cout << "Zufallswort: " << db[zrand] << std::endl; std::cout << "Groesse: " << mydb.size() << std::endl; for(std::string::size_type index = 0; index != mydb.size(); ++index) { std::cout << db[index] << std::endl; } } std::cin.get(); return 0; }der Compiler sagt:
error C2664: 'std::basic_string<_Elem,_Traits,_Ax>::push_back': Konvertierung des Parameters 1 von 'std::deque<_Ty>' in 'char' nicht möglich 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char>, 1> _Ax=std::allocator<char> 1> ] 1> and 1> [ 1> _Ty=std::string 1> ] 1> Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werdenWieso eigentlich?
db[zrand].push_back(mydb);Mit freundlichen Grüßen

-
db[zrand].push_back(mydb.c_str());
-
Äh, nicht eher
mydb.push_back(db[zrand]);?
-
Threadtitel schrieb:
Deque push_back
=>
Danie1 schrieb:
std::string db[] = { ... db[zrand].push_back(Na ? Von welcher Klasse wird denn eigentlich push_back() aufgerufen ?

Gruß,
Simon2.
-
du haust die deque per push_back in den String rein oder versuchst es zumindest. Andersrum wird vielleicht n Schuh draus
