Perguntas com a marcação «stl»

A Standard Template Library, ou STL, é uma biblioteca C ++ de contêineres genéricos, iteradores, algoritmos e objetos de função. Quando o C ++ foi padronizado, grandes partes do STL foram adotadas na Biblioteca Padrão, e essas partes na Biblioteca Padrão também são, às vezes, erroneamente referidas coletivamente como "o STL".


6
Por que não há problema em retornar um 'vetor' de uma função?
Por favor, considere este código. Já vi esse tipo de código várias vezes. wordsé um vetor local. Como é possível retorná-lo de uma função? Podemos garantir que não morrerá? 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); } std::vector<string> …



5
Usando o comparador std :: set personalizado
На этот вопрос есть ответы на Stack Overflow на русском : Компаратор для set Estou tentando alterar a ordem padrão dos itens em um conjunto de inteiros para serem lexicográficos em vez de numéricos e não consigo compilar o seguinte com g ++: file.cpp: bool lex_compare(const int64_t &a, const int64_t …
106 c++  stl 

10
Por que std :: set não tem uma função de membro “contém”?
Estou usando muito std::set<int>e, frequentemente, só preciso verificar se esse conjunto contém um número ou não. Acho natural escrever: if (myset.contains(number)) ... Mas, devido à falta de um containsmembro, preciso escrever o incômodo: if (myset.find(number) != myset.end()) .. ou não tão óbvio: if (myset.count(element) > 0) .. Existe uma razão …
103 c++  stl  stdset 


6
string c_str () vs. dados ()
Eu li vários lugares que a diferença entre c_str()e data()(em STL e outras implementações) é que c_str()é sempre terminado em nulo, enquanto data()não é. Pelo que tenho visto em implementações reais, eles fazem o mesmo ou data()chamam c_str(). O que estou perdendo aqui? Qual é o mais correto para usar …
102 c++  stl  c-str 

6
Maneira moderna de filtrar o contêiner STL?
Voltando ao C ++ depois de anos de C #, eu estava me perguntando qual seria a forma moderna - leia-se: C ++ 11 - de filtrar um array, ou seja, como podemos conseguir algo semelhante a esta consulta Linq: var filteredElements = elements.Where(elm => elm.filterProperty == true); Para filtrar …
102 c++  c++11  stl 

5
Apagando elementos de um vetor
Quero limpar um elemento de um vetor usando o método erase. Mas o problema aqui é que não é garantido que o elemento ocorra apenas uma vez no vetor. Pode estar presente várias vezes e preciso limpar todos eles. Meu código é mais ou menos assim: void erase(std::vector<int>& myNumbers_in, int …
101 c++  vector  stl  erase 

3
A implementação do gcc std :: unordered_map é lenta? Se sim - por quê?
Estamos desenvolvendo um software crítico de alto desempenho em C ++. Precisamos de um mapa hash concorrente e um implementado. Então, nós escrevemos um benchmark para descobrir, quanto mais lento nosso mapa hash simultâneo é comparado std::unordered_map. Mas, std::unordered_mapparece ser incrivelmente lento ... Portanto, este é o nosso micro-benchmark (para …

4
C ++ const map element access
Tentei usar o operador [] para acessar o elemento em um mapa const C ++, mas esse método falhou. Também tentei usar "at ()" para fazer a mesma coisa. Funcionou dessa vez. No entanto, não consegui encontrar nenhuma referência sobre o uso de "at ()" para acessar o elemento em …
100 c++  stl  map  const 

2
Por que std :: ssize () foi introduzido em C ++ 20?
C ++ 20 introduziu a std::ssize()função livre conforme abaixo: template <class C> constexpr auto ssize(const C& c) -> std::common_type_t<std::ptrdiff_t, std::make_signed_t<decltype(c.size())>>; Uma possível implementação parece usar static_cast, para converter o valor de retorno da size()função-membro de cl ass C em sua contraparte assinada. Visto que a size()função-membro de C sempre retorna …
99 c++  stl  unsigned  signed  c++20 


6
Por que o vetor <bool> não é um contêiner STL?
O item 18 do livro de Scott Meyers STL eficaz: 50 maneiras específicas de melhorar seu uso da biblioteca de modelos padrão diz para evitar, vector &lt;bool&gt;pois não é um contêiner STL e realmente não contém bools. O seguinte código: vector &lt;bool&gt; v; bool *pb =&amp;v[0]; não irá compilar, violando …

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.