Articles of stl

Como posso encomendar um mapa por valor de forma eficiente?

Considere um std::map . Eu quero reordenar o mapa pelo valor lucrando com um contêiner apropriado std::C ou std::C , de forma que nenhuma cópia de valores seja feita para armazenar os elementos em C. Além disso, , os elementos em C devem ser classificados de acordo com o resultado de int f(V&) aplicado a […]

O myVector.erase (myPtr) exclui o object apontado pelo myPtr?

Se eu tiver o seguinte código, Foo *f = new Foo(); vector vect; vect.push_back(f); // do stuff vect.erase(f); Eu criei um memory leaks? Eu acho que sim, mas a palavra apagar dá a sensação de que está apagando. Escrevendo isso, estou querendo saber se não é um erro colocar um ponteiro em um vetor STL. […]

size_t no XCode

Parece no XCode eu preciso usar std :: size_t em vez de apenas size_t no Visual C ++. Mas isso é uma dor, como eu realmente não quero ter que #include e alterar todos os size_t para std::size_t no meu código … no meu size_t código do Windows_t apenas funciona sem include quaisquer arquivos adicionais. […]

algoritmo – tree de pesquisa com fallback de prefixo de caminho mais próximo

Eu estou atrás de um algoritmo para um problema onde eu mantenho uma estrutura de tree na qual eu preciso encontrar a correspondência mais próxima para um nó de dados. Se não houver correspondência exata, ela retornará ao prefixo mais próximo. Por exemplo, se eu disser que tenho a estrutura abaixo, onde as palavras (número […]

Encontrando o elemento mais comum em uma lista (C ++ STL)?

Eu tenho um programa onde eu tenho que encontrar o elemento mais comum em uma lista de inteiros. Eu faço isso com o programa abaixo, mas o problema é que eu suspeito que a function erase atrapalhe o incremento do iterador na function countRepetition() . Minha pergunta é como posso corrigir o problema ou se […]

Como podemos trocar 2 arrays em complexidade constante ou O (1)?

Como podemos trocar 2 arrays em complexidade constante ou O (1)? Existe uma maneira que podemos fazer isso? Eu tentei usar pointers, mas está dando erro mais isso não vai ajudar, porque é apenas trocar os pointers, mas não as matrizes #include int AA[100], *A=AA, BB[100], *B=BB; swap(A, B); Eu tentei usar o operador de […]

Definir um tipo de iterador em um wrapper do contêiner stl

Qual é o caminho certo para escrever uma class wrapper em torno de um contêiner STL, que também é um modelo (pode aceitar um tipo genérico T como elemento) e me permite usar um iterador como faria com o contêiner STL diretamente? Eu quero fazer algo do seguinte tipo #include #include class MyClass{}; template class […]

lendo dados de texto em buffer para string

Oi eu quero ler de um arquivo de texto pendurado dados diretamente para uma string Eu sei que eu posso usar o seguinte: ifstream infile(“myfile”); string str(istreambuf_iterator(infile), istreambuf_iterator()); mas desta forma ler todo o arquivo em uma única etapa. Eu quero lê-lo em vários passos, porque isso é muito grande arquivo de cerca de 50 […]

std :: find Objeto por membro

Cenário Eu corri em um speedbump ao usar o STL com o que parece ser um cenário normal, simplificado aqui: class Person { string Name; int Age; }; vector people; AddPeople(people); string s(“Bob”); find(people.begin(), people.end(), s); Problema Infelizmente find quer comparar toda a class. Questão Existe uma maneira melhor ou mais apropriada de fazer isso […]

Iterar o container STL usando os índices de maneira segura para evitar o uso de bloqueios?

Perguntando se é seguro fazer uma iteração em um contêiner STL, como um vetor, da seguinte maneira, para evitar o bloqueio em leituras / gravações, mas permitindo operações push_back () apenas por qualquer encadeamento de “gravação”. for (size_t i = 0; i < vec.size(); i++) { const T& t = *vec[i]; // do something with […]