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
Perché va bene restituire un "vettore" da una funzione?
Si prega di considerare questo codice. Ho visto più volte questo tipo di codice. wordsè un vettore locale. Come è possibile restituirlo da una funzione? Possiamo garantire che non morirà? std::vector<std::string> read_file(const std::string& path) { std::ifstream file("E:\\names.txt"); if (!file.is_open()) { std::cerr << "Unable to open file" << "\n"; std::exit(-1); } …



5
Utilizzo del comparatore std :: set personalizzato
На этот вопрос есть ответы на Stack Overflow на русском : Компаратор для set Sto cercando di modificare l'ordine predefinito degli elementi in un insieme di numeri interi in modo che sia lessicografico anziché numerico e non riesco a compilare quanto segue con g ++: file.cpp: bool lex_compare(const int64_t &a, …
106 c++  stl 

10
Perché std :: set non ha una funzione membro "contiene"?
Sto usando pesantemente std::set<int> e spesso ho semplicemente bisogno di controllare se un tale set contiene un numero o meno. Troverei naturale scrivere: if (myset.contains(number)) ... Ma a causa della mancanza di un containsmembro, ho bisogno di scrivere l'ingombrante: if (myset.find(number) != myset.end()) .. o il non così ovvio: if …
103 c++  stl  stdset 


6
stringa c_str () vs. data ()
Ho letto in diversi punti che la differenza tra c_str()e data()(in STL e altre implementazioni) è che c_str()è sempre terminato con null mentre data()non lo è. Per quanto ho visto nelle implementazioni effettive, fanno lo stesso o data()chiamano c_str(). Cosa mi manca qui? Quale è più corretto da usare in …
102 c++  stl  c-str 

5
Cancellazione di elementi da un vettore
Voglio cancellare un elemento da un vettore usando il metodo di cancellazione. Ma il problema qui è che non è garantito che l'elemento si presenti solo una volta nel vettore. Potrebbe essere presente più volte e devo cancellarle tutte. Il mio codice è qualcosa del genere: void erase(std::vector<int>& myNumbers_in, int …
101 c++  vector  stl  erase 

3
L'implementazione di gcc std :: unordered_map è lenta? In caso affermativo, perché?
Stiamo sviluppando un software critico ad alte prestazioni in C ++. Lì abbiamo bisogno di una mappa hash simultanea e ne implementiamo una. Quindi abbiamo scritto un benchmark per capire quanto più lenta viene confrontata la nostra mappa hash simultanea std::unordered_map. Ma std::unordered_mapsembra essere incredibilmente lento ... Quindi questo è …

4
Accesso agli elementi della mappa C ++ const
Ho provato a utilizzare l'operatore [] per accedere all'elemento in una mappa C ++ const, ma questo metodo non è riuscito. Ho anche provato a usare "at ()" per fare la stessa cosa. Questa volta ha funzionato. Tuttavia, non sono riuscito a trovare alcun riferimento sull'utilizzo di "at ()" per …
100 c++  stl  map  const 

2
Perché std :: ssize () è stato introdotto in C ++ 20?
C ++ 20 ha introdotto ilstd::ssize() funzione gratuita come di seguito: template <class C> constexpr auto ssize(const C& c) -> std::common_type_t<std::ptrdiff_t, std::make_signed_t<decltype(c.size())>>; Una possibile implementazione sembra usare static_cast, per convertire il valore restituito dalla size()funzione membro di cl ass C nella sua controparte firmata. Dal momento che il size() funzione …
99 c++  stl  unsigned  signed  c++20 

6
Perché il vettore <bool> non è un contenitore STL?
L'articolo 18 del libro di Scott Meyers STL efficace: 50 modi specifici per migliorare l'uso della libreria di modelli standard dice di evitare vector &lt;bool&gt;in quanto non è un contenitore STL e non contiene realmente bools. Il codice seguente: vector &lt;bool&gt; v; bool *pb =&amp;v[0]; non verrà compilato, violando un …


8
vector :: at vs. vector :: operator []
So che at()è più lento che a []causa del controllo dei confini, che è anche discusso in domande simili come C ++ Vector at / [] operator speed o :: std :: vector :: at () vs operator [] &lt;&lt; risultati sorprendenti !! Da 5 a 10 volte più lento …
95 c++  stl  stdvector 

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.