Articles of stl

Leggere e scrivere un file std :: vector in un file correttamente

Questo è il punto. Come scrivere e leggere file binari con std :: vector al loro interno? Stavo pensando qualcosa come: //============ WRITING A VECTOR INTO A FILE ================ const int DIM = 6; int array[DIM] = {1,2,3,4,5,6}; std::vector myVector(array, array + DIM); ofstream FILE(Path, ios::out | ofstream::binary); FILE.write(reinterpret_cast(&myVector), sizeof(vector) * 6); //=========================================================== Ma non […]

Come posso copiare una mappa in un’altra usando std :: copy?

Vorrei copiare il contenuto di una std :: map in un’altra. Posso usare std::copy per questo? Ovviamente, il seguente codice non funzionerà: int main() { typedef std::map Map; Map m1; m1[3] = 0.3; m1[5] = 0.5; Map m2; m2[1] = 0.1; std::copy(m1.begin(), m1.end(), m2.begin()); return 0; } Ciò non funzionerà perché la copy chiamerà operator* […]

Come usare std :: find / std :: find_if con un vettore di oggetti di class personalizzati?

Ho una class che rappresenta un utente chiamato Nick e voglio usare std::find_if su di esso, dove voglio trovare se il vettore della userlist ha un object incluso con lo stesso nome utente che ho inserito. Ho fatto alcuni tentativi cercando di creare un nuovo object Nick per il nome utente che voglio testare e […]

quanto è portatile il decremento dell’iteratore?

Ho appena riscontrato un decremento di iteratore di end() nei codici sorgente della mia azienda e mi sembra strano. Per quanto mi ricordo, questo funzionava su alcune piattaforms, ma non per gli altri. Forse ho sbagliato, tuttavia non ho trovato nulla di utile in questo. Lo standard dice solo che end() restituisce un iteratore che […]

La funzione template C ++ compila nell’intestazione ma non nell’implementazione

Sto cercando di imparare i modelli e mi sono imbattuto in questo errore di confusione. Sto dichiarando alcune funzioni in un file di intestazione e voglio creare un file di implementazione separato in cui verranno definite le funzioni. Ecco il codice che chiama l’intestazione (dum.cpp): #include #include #include #include “dumper2.h” int main() { std::vector v; […]

std :: transform () e toupper (), nessuna funzione di corrispondenza

Ho provato il codice da questa domanda C ++ std :: transform () e toupper () .. perché questo fallisce? #include #include int main() { std::string s=”hello”; std::string out; std::transform(s.begin(), s.end(), std::back_inserter(out), std::toupper); std::cout << "hello in upper case: " << out << std::endl; } In teoria avrebbe dovuto funzionare in quanto è uno degli […]

Modo “corretto” per memorizzare dati binari con C ++ / STL

In generale, qual è il modo migliore per archiviare dati binari in C ++? Le opzioni, per quanto posso dire, si riducono praticamente all’utilizzo di stringhe o vettori s. (Tralascio la possibilità di char * se malloc () s poiché mi riferisco specificamente al C ++). Di solito uso solo una stringa, tuttavia non sono […]

Quale contenitore STL dovrei usare per un FIFO?

Quale contenitore STL si adatta meglio alle mie esigenze? Fondamentalmente ho un contenitore di 10 elementi in cui push_back continuamente i nuovi elementi mentre pop_front l’elemento più vecchio (circa un milione di volte). Attualmente sto usando uno std::deque per l’attività, ma mi chiedevo se una std::list sarebbe stata più efficiente dato che non avrei avuto […]

Perché preferirei usare il vettore per deque

Da sono entrambi contenitori contigui di memoria; Dal punto di vista della funzionalità, deque ha quasi tutto il vettore ha ma di più, dal momento che è più efficiente da inserire nella parte anteriore. Perché qualcuno dovrebbe preferire std::vector a std::deque ?

Qual è la differenza tra const_iterator e non-const iterator nel C ++ STL?

Qual è la differenza tra un const_iterator e un iterator e dove utilizzeresti l’uno sull’altro?