Articles of stl

funções de capacidade (), reserva () & resize () do std :: strings

Eu quero usar std :: string simplesmente para criar um buffer dynamic e de iterar através dele usando um índice. É resize () a única function para realmente alocar o buffer? Eu tentei reserve (), mas quando tento acessar a cadeia via índice, afirma. Além disso, quando a capacidade padrão da string parece ser de […]

Incrementando iteradores: ++ é mais eficiente que ++?

Duplicar Possível: Existe uma diferença de desempenho entre i ++ e ++ i em C ++? Eu estou escrevendo um programa onde um iterador é usado para fazer um loop através de um std :: vector. Alguém me disse que fazer isso na instrução for leva a um código mais eficiente. Em outras palavras, eles […]

erro para function hash do par de ints

Eu tenho a seguinte class com um membro unordered_map e uma function hash definida para o pair class abc {public : unordered_map < pair , int > rules ; unsigned nodes; unsigned packet ; }; namespace std { template class hash < std::pair >{ public : size_t operator()(const pair &x ) const { size_t h […]

quão portátil é o decréscimo do iterador final?

Acabei de encontrar decréscimo do iterador end() nos códigos-fonte da minha empresa e parece estranho para mim. Tanto quanto me lembro, estava trabalhando em algumas plataformas, mas não para as outras. Talvez eu esteja errado, no entanto não consegui encontrar nada útil em padrão sobre isso. Standard apenas diz que end() retorna um iterador que […]

Como posso copiar um mapa para outro usando std :: copy?

Eu gostaria de copiar o conteúdo de um std :: map para outro. Posso usar o std::copy para isso? Obviamente, o seguinte código não funcionará: 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; } Isso não funcionará porque a […]

std :: map, ponteiro para mapear o valor da chave, isso é possível?

std::map myMap; std::map::iterator i = m_myMap.find(some_key_string); if(i == m_imagesMap.end()) return NULL; string *p = &i->first; A última linha é válida? Eu quero armazenar este ponteiro p em outro lugar, será válido para toda a vida do programa? Mas o que acontecerá se eu adicionar mais elementos a este mapa (com outras chaves exclusivas) ou remover […]

Lendo e escrevendo um std :: vector em um arquivo corretamente

Esse é o ponto. Como escrever e ler arquivos binários com std :: vector dentro deles? Eu estava pensando em algo como: //============ 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); //=========================================================== Mas […]

Como usar std :: find / std :: find_if com um vetor de objects de class personalizada?

Eu tenho uma class que representa um usuário chamado Nick e eu quero usar std::find_if nele, onde eu quero encontrar se o vetor userlist tem um object incluído com o mesmo nome de usuário que eu passo. Eu fiz algumas tentativas tentando crie um novo object Nick para o nome de usuário que desejo testar […]

Função de modelo C ++ compila no header, mas não na implementação

Estou tentando aprender modelos e me deparei com esse erro de confusão. Eu estou declarando algumas funções em um arquivo de header e quero fazer um arquivo de implementação separado onde as funções serão definidas. Aqui está o código que chama o header (dum.cpp): #include #include #include #include “dumper2.h” int main() { std::vector v; for […]

Maneira “adequada” de armazenar dados binários com C ++ / STL

Em geral, qual é a melhor maneira de armazenar dados binários em C ++? As opções, tanto quanto eu posso dizer, praticamente se resumem a usar strings ou vetores s. (Vou omitir a possibilidade de char * se malloc () s, já que estou me referindo especificamente ao C ++). Normalmente eu uso apenas uma […]