Domande taggate «stl»

Standard Template Library, o STL, è una libreria C ++ di contenitori generici, iteratori, algoritmi e oggetti funzione. Quando il C ++ è stato standardizzato, ampie parti dell'STL sono state adottate nella libreria standard e queste parti nella libreria standard sono talvolta erroneamente definite collettivamente come "l'STL".


6
Come posso specificare un puntatore a una funzione sovraccaricata?
Voglio passare una funzione sovraccarica std::for_each()all'algoritmo. Per esempio, class A { void f(char c); void f(int i); void scan(const std::string& s) { std::for_each(s.begin(), s.end(), f); } }; Mi aspetto che il compilatore si risolva in f()base al tipo di iteratore. Apparentemente (GCC 4.1.2) non lo fa. Quindi, come posso specificare …
137 c++  stl 

5
Operatore doppio indirizzo C ++? (&&)
Sto leggendo il codice sorgente STL e non ho idea di cosa &&dovrebbe fare l'operatore di indirizzo. Ecco un esempio di codice da stl_vector.h: vector& operator=(vector&& __x) // <-- Note double ampersands here { // NB: DR 675. this->clear(); this->swap(__x); return *this; } "Indirizzo di indirizzo" ha senso? Perché ha …

3
Cosa succede se si chiama erase () su un elemento della mappa mentre si scorre dall'inizio alla fine?
Nel codice seguente cerco una mappa e controllo se un elemento deve essere cancellato. È sicuro cancellare l'elemento e continuare a scorrere o devo raccogliere le chiavi in ​​un altro contenitore ed eseguire un secondo ciclo per chiamare il cancella ()? map<string, SerialdMsg::SerialFunction_t>::iterator pm_it; for (pm_it = port_map.begin(); pm_it != …
133 c++  stl  iterator 


2
Come impostare la dimensione iniziale di std :: vector?
Ho un vector<CustomClass*>e ho inserito molti elementi nel vettore e ho bisogno di un accesso rapido, quindi non uso l'elenco. Come impostare la dimensione iniziale del vettore (ad esempio essere 20.000 posti, in modo da evitare la copia quando inserisco nuovo)?
130 c++  stl 

7
Perché std :: queue :: pop non restituisce il valore.?
Ho esaminato questa pagina ma non sono in grado di ottenere il motivo per lo stesso. Là è detto che "è più sensato che non restituisca alcun valore e richieda ai client di usare front () per ispezionare il valore all'inizio della coda" Ma l'ispezione di un elemento da front …
123 c++  stl 




13
remove_if equivalente per std :: map
Stavo cercando di cancellare una serie di elementi dalla mappa in base a condizioni particolari. Come lo faccio utilizzando algoritmi STL? Inizialmente pensavo di utilizzare remove_ifma non è possibile in quanto remove_if non funziona per i container associativi. Esiste un algoritmo equivalente "remove_if" che funziona per map? Come semplice opzione, …
118 c++  stl  map 


4
Come sovraccaricare std :: swap ()
std::swap()viene utilizzato da molti contenitori std (come std::liste std::vector) durante l'ordinamento e anche l'assegnazione. Ma l'implementazione standard di swap()è molto generalizzata e piuttosto inefficiente per i tipi personalizzati. Pertanto l'efficienza può essere ottenuta sovraccaricando std::swap()con un'implementazione specifica del tipo personalizzata. Ma come puoi implementarlo in modo che venga utilizzato dai …

5
C ++ map access scarta qualificatori (const)
Il codice seguente dice che passando la mappa come constnel operator[]metodo scarta i qualificatori: #include <iostream> #include <map> #include <string> using namespace std; class MapWrapper { public: const int &get_value(const int &key) const { return _map[key]; } private: map<int, int> _map; }; int main() { MapWrapper mw; cout << mw.get_value(42) …
113 c++  stl  const  maps 

9
Qual è il modo preferito / idiomatico per inserire in una mappa?
Ho identificato quattro diversi modi per inserire elementi in un std::map: std::map<int, int> function; function[0] = 42; function.insert(std::map<int, int>::value_type(0, 42)); function.insert(std::pair<int, int>(0, 42)); function.insert(std::make_pair(0, 42)); Quale di questi è il modo preferito / idiomatico? (E c'è un altro modo a cui non ho pensato?)
113 c++  stl  insert  stdmap  std-pair 

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.