W C++, można to zrobić:Populacja czasu kompilacji struktur danych innych niż tablice?
static const char * [4] = {
"One fish",
"Two fish",
"Red fish",
"Blue fish"
};
... i który daje piękny tylko do odczytu tablicy danych struktura, która nie ponosi cykli procesora, aby zainicjować w czasie wykonywania, ponieważ wszystkie dane został ustawiony dla ciebie (na stronach pamięci tylko do odczytu) przez kompilator.
Ale co, jeśli wolałbym używać innej struktury danych zamiast tablicy? Na przykład, jeśli chciałem moją strukturę danych, aby miał szybki wyszukiwań za pomocą klucza, muszę zrobić coś takiego:
static std::map<int, const char *> map;
int main(int, char **)
{
map.insert(555, "One fish");
map.insert(666, "Two fish");
map.insert(451, "Red fish");
map.insert(626, "Blue fish");
[... rest of program here...]
}
... co jest mniej eleganckie i mniej skuteczne, jak struktura danych jest mapa zapełnianie w czasie wykonywania, mimo że wszystkie niezbędne dane były znane w czasie kompilacji, a zatem praca mogła zostać (teoretycznie) wykonana.
Moje pytanie brzmi, czy istnieje sposób w C++ (lub C++ 11) do utworzenia struktury danych tylko do odczytu (takiej jak mapa), której dane są całkowicie skonfigurowane w czasie kompilacji, a zatem wstępnie wypełnione i gotowy do użycia w czasie wykonywania, tak jak może być tablica?
Czy odpowiadasz na moje pytanie podobne do wektora? Moje wartości są typu double http://stackoverflow.com/questions/15471122/getting-started-w-boost-mist-with-vector-and-pushback – woosah