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

7
Por que não podemos declarar um std :: vector <AbstractClass>?
Tendo passado algum tempo desenvolvendo em C #, percebi que se você declarar uma classe abstrata com o propósito de usá-la como uma interface, não poderá instanciar um vetor dessa classe abstrata para armazenar instâncias das classes filhas. #pragma once #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; class IFunnyInterface { …

3
como fornecer uma função de troca para minha classe?
Qual é a maneira correta de habilitar meus swapalgoritmos em STL? 1) Membro swap. Does std::swapusar truque SFINAE de usar o membro swap. 2) Autonomia swapno mesmo namespace. 3) Especialização parcial de std::swap. 4) Todas as opções acima. Obrigado. EDIT: Parece que eu não fiz minha pergunta claramente. Basicamente, eu …
87 c++  algorithm  stl  swap 

10
Por que eu preferiria usar vetor para deque
Desde a ambos são recipientes de memória contíguos; Em termos de recursos, o deque tem quase tudo que o vetor tem, mas muito mais, já que é mais eficiente para inserir na frente. Por Whould ninguém preferem std::vectora std::deque?
86 c++  stl  vector  deque 

12
Copie os valores do mapa para o vetor em STL
Estou trabalhando no STL efetivo no momento. O item 5 sugere que geralmente é preferível usar funções de membro de intervalo em vez de suas contrapartes de elemento único. No momento, desejo copiar todos os valores em um mapa (ou seja, não preciso das chaves) para um vetor. Qual é …
86 c++  stl  containers 

8
Não é possível incluir cabeçalhos C ++ como vetor no Android NDK
Quando tento incluir qualquer classe C ++ como vetor em meu projeto Android NDK (usando NDK r5b, o mais recente), recebo um erro como o seguinte ... Compile++ thumb : test-libstl &lt;= test-libstl.cpp /Users/nitrex88/Desktop/Programming/EclipseProjects/STLTest/jni/test-libstl.cpp:3:18: error: vector: No such file or directory Outras pessoas que relataram esse problema online afirmaram ter …

4
Contêiner STL com um tipo específico como argumento genérico
Existe alguma maneira que eu possa fazer uma função que pega um contêiner com um tipo específico (digamos std::string) como parâmetro void foo(const std::container&lt;std::string&gt; &amp;cont) { for(std::string val: cont) { std::cout &lt;&lt; val &lt;&lt; std::endl; } } e chamá-lo para todos os tipos de contêiner stl como entrada? como acima? …

4
É válido usar std :: transform com std :: back_inserter?
Cppreference possui este código de exemplo para std::transform: std::vector&lt;std::size_t&gt; ordinals; std::transform(s.begin(), s.end(), std::back_inserter(ordinals), [](unsigned char c) -&gt; std::size_t { return c; }); Mas também diz: std::transformnão garante a aplicação em ordem de unary_opou binary_op. Para aplicar uma função a uma sequência em ordem ou para aplicar uma função que modifica …




3
Posso usar std :: transform no lugar com uma política de execução paralela?
Se não me engano, eu posso fazer std::transformexecutar no lugar usando a mesma faixa como um iterador de entrada e saída. Suponha que eu tenha algum std::vectorobjeto vec, então eu escreveria std::transform(vec.cbegin(),vec.cend(),vec.begin(),unary_op) usando uma operação unária adequada unary_op. Usando o padrão C ++ 17, eu gostaria de executar a transformação …

1
Vazamento de memória durante a exceção unordered_map :: insert KeyEqual no GCC - quebrando a forte garantia de segurança de exceções?
Estou usando o GCC 7.3.1, mas também testei no coliru, que acredito ser a versão 9.2.0. Crie com o seguinte: g++ -fsanitize=address -fno-omit-frame-pointer rai.cpp Aqui está rai.cpp: #include &lt;iostream&gt; #include &lt;unordered_map&gt; int main() { try { struct MyComp { bool operator()(const std::string&amp;, const std::string&amp;) const { throw std::runtime_error("Nonono"); } }; …


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.