muszę zdefiniować strukturę danychDlaczego mogę używać const char * jako klucz w std :: map <std :: string, int>
std::map<std::string, int> a;
znalazłem mogę przekazać const char * jako klucza, jak to:
a["abc"] = 1;
Która funkcja zapewnia automatyczną konwersję z typu const char * aby std :: string?
Robienie takich rzeczy niejawnie brzmi jak przepis na trudne do znalezienia błędy. –
Nie, niektóre niejawne konwersje są w porządku. C-string i 'std :: string' są semantycznie równoważne, po prostu ciąg C jest bezużytecznym kawałkiem bzdur. – Puppy
@Warren, jest to powszechne w C++, szczególnie w przypadku powszechnie używanych konstrukcji, takich jak std :: string. Możesz cieszyć się hitem wydajności tymczasowej konstrukcji std :: string za każdym razem, gdy robisz odnośnik ... – Alex