Udostępnij za pośrednictwem


Pojemniki (C++ nowoczesny)

Domyślnie używają vector jako domyślny kontener sekwencyjnych w języku C++.Jest to odpowiednik listy <T> w innych językach.

vector<widget> v;
v.push_back( “Geddy Lee” );

Jako domyślny kontener asocjacyjnych, należy użyć mapy (nie unordered_map).Użyj zestawu, multimap, zestaw wielokrotny dla degenerate & Multi przypadków.

map<string, string> phone_book;
phone_book[“Alex Lifeson”] = “+1 (416) 555-1212”;

Po optymalizacji wydajności jest potrzebny, należy rozważyć zastosowanie:

  1. Typ tablicy podczas osadzania jest ważne, e.g., jako członek klasy.

  2. unordered_map, et al.: mniejszym obciążeniu na element (głównym) i stałą czasu wyszukiwania (moll, ponieważ nieprawidłowe O (log N) korzystają Z SYMBOLAMI O(K)).Trudniejsze do użytku prawidłowo i efektywnie, z powodu niedogodności + ostrych krawędzi.

  3. Wektor sortowane.(Patrz: algorytmy.)

Nie używaj c tablic.(Dla starszych interfejsów API, użyj f (vec.data(), vec.size()); .)

Zobacz też

Inne zasoby

Nowoczesne C++ Programming Guide

Skorowidz języka C++

Biblioteka języka C++ wzorcowego