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".

10
Perché preferirei usare il vettore per eliminare
Da sono entrambi contenitori di memoria contigui; dal punto di vista delle funzionalità, deque ha quasi tutto ciò che vector ha ma di più, poiché è più efficiente da inserire in primo piano. Perché qualcuno std::vectordovrebbe preferirlo std::deque?
87 c++  stl  vector  deque 

12
Copia i valori della mappa nel vettore in STL
Al momento mi sto facendo strada attraverso l'Effective STL L'articolo 5 suggerisce che di solito è preferibile utilizzare le funzioni dei membri dell'intervallo rispetto alle loro controparti a singolo elemento. Attualmente desidero copiare tutti i valori in una mappa (cioè - non ho bisogno delle chiavi) in un vettore. Qual …
85 c++  stl  containers 

6
Perché ho bisogno di std :: get_temporary_buffer?
Per quale scopo dovrei usare std::get_temporary_buffer? Standard dice quanto segue: Ottiene un puntatore alla memoria sufficiente per memorizzare fino an oggetti T adiacenti. Ho pensato che il buffer verrà allocato sullo stack, ma non è vero. Secondo lo standard C ++ questo buffer non è in realtà temporaneo. Quali vantaggi …

4
Contenitore STL con un tipo specifico come argomento generico
Esiste un modo in cui posso fare una funzione che accetta un contenitore con un tipo specifico (diciamo std::string) come parametro void foo(const std::container<std::string> &cont) { for(std::string val: cont) { std::cout << val << std::endl; } } e chiamarlo per ogni tipo di contenitore stl come input? come sopra? std::set<std::string> …

4
È valido usare std :: transform con std :: back_inserter?
Cppreference ha questo codice di esempio per std::transform: std::vector<std::size_t> ordinals; std::transform(s.begin(), s.end(), std::back_inserter(ordinals), [](unsigned char c) -> std::size_t { return c; }); Ma dice anche: std::transformnon garantisce l'applicazione in ordine di unary_opo binary_op. Per applicare una funzione a una sequenza in ordine o per applicare una funzione che modifica gli …



1
`String.assign (string.data (), 5)` è ben definito o UB?
Un collega voleva scrivere questo: std::string_view strip_whitespace(std::string_view sv); std::string line = "hello "; line = strip_whitespace(line); Ho detto che il ritorno string_viewmi rendeva inquieto a priori e, inoltre, l'alias qui mi sembrava UB. Posso affermare con certezza che line = strip_whitespace(line)in questo caso equivale a line = std::string_view(line.data(), 5). Credo …

3
Posso usare std :: transform sul posto con una politica di esecuzione parallela?
Se non sbaglio, posso far std::transformfunzionare sul posto usando lo stesso intervallo di un iteratore di input e output. Supponiamo di avere un std::vectoroggetto vec, quindi scrivo std::transform(vec.cbegin(),vec.cend(),vec.begin(),unary_op) usando un'operazione unaria adatta unary_op. Usando lo standard C ++ 17, vorrei eseguire la trasformazione in parallelo inserendone una std::execution::parcome primo argomento. …

1
Perdita di memoria durante unordered_map :: insert Eccezione KeyEqual con GCC - rompendo la forte garanzia di sicurezza delle eccezioni?
Sto usando GCC 7.3.1, ma anche testato su coliru, che credo sia la versione 9.2.0. Costruire con il seguente: g++ -fsanitize=address -fno-omit-frame-pointer rai.cpp Ecco rai.cpp: #include <iostream> #include <unordered_map> int main() { try { struct MyComp { bool operator()(const std::string&, const std::string&) const { throw std::runtime_error("Nonono"); } }; std::unordered_map<std::string, std::string, …
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.