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
Como especifico um ponteiro para uma função sobrecarregada?
Eu quero passar uma função sobrecarregada para o std::for_each()algoritmo. Por exemplo, class A { void f(char c); void f(int i); void scan(const std::string& s) { std::for_each(s.begin(), s.end(), f); } }; Eu esperaria que o compilador resolvesse f()pelo tipo de iterador. Aparentemente, ele (GCC 4.1.2) não faz isso. Então, como posso …
137 c++  stl 

5
Operador de endereço duplo C ++? (&&)
Estou lendo o código fonte STL e não tenho idéia do que o &&operador de endereço deve fazer. Aqui está um exemplo de código de stl_vector.h: vector& operator=(vector&& __x) // <-- Note double ampersands here { // NB: DR 675. this->clear(); this->swap(__x); return *this; } "Endereço do endereço" faz algum …



2
Como definir o tamanho inicial do std :: vector?
Eu tenho um vector<CustomClass*>e coloco muitos itens no vetor e preciso de acesso rápido, para não usar a lista. Como definir o tamanho inicial do vetor (por exemplo, 20.000 lugares, para evitar a cópia quando insiro um novo)?
130 c++  stl 

7
Por que std :: queue :: pop retorna valor.?
Passei por esta página, mas não sou capaz de entender o motivo. Lá é mencionado que "é mais sensato não retornar nenhum valor e exigir que os clientes usem front () para inspecionar o valor na frente da fila" Mas a inspeção de um elemento de front () também exigia …
123 c++  stl 




13
remove_if equivalente para std :: map
Eu estava tentando apagar uma série de elementos do mapa com base em uma condição particular. Como faço isso usando algoritmos STL? Inicialmente pensei em usar, remove_ifmas não é possível, pois remove_if não funciona para container associativo. Existe algum algoritmo equivalente "remove_if" que funciona para o mapa? Como uma opção …
118 c++  stl  map 


4
Como sobrecarregar std :: swap ()
std::swap()é usado por muitos contêineres std (como std::liste std::vector) durante a classificação e até mesmo a atribuição. Mas a implementação padrão do swap()é muito generalizada e bastante ineficiente para tipos personalizados. Assim, a eficiência pode ser obtida sobrecarregando std::swap()com uma implementação específica de tipo personalizado. Mas como você pode implementá-lo …

5
O acesso ao mapa C ++ descarta qualificadores (const)
O código a seguir diz que passar o mapa como constno operator[]método descarta os qualificadores: #include <iostream> #include <map> #include <string> using namespace std; class MapWrapper { public: const int &get_value(const int &key) const { return _map[key]; } private: map<int, int> _map; }; int main() { MapWrapper mw; cout << …
113 c++  stl  const  maps 

9
Qual é a maneira preferencial / idiomática de inserir em um mapa?
Eu identifiquei quatro maneiras diferentes de inserir elementos em um std::map: std::map<int, int> function; function[0] = 42; function.insert(std::map<int, int>::value_type(0, 42)); function.insert(std::pair<int, int>(0, 42)); function.insert(std::make_pair(0, 42)); Qual dessas é a forma idiomática preferida? (E há outra maneira que eu não pensei?)
113 c++  stl  insert  stdmap  std-pair 

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.