Articles of stl

Por que não consigo gravar em uma string literal enquanto eu * posso * gravar em um object de string?

Se eu definir algo como abaixo, char *s1 = “Hello”; porque eu não posso fazer algo como abaixo, *s1 = ‘w’; // gives segmentation fault …why??? E se eu fizer algo como abaixo, string s1 = “hello”; Posso fazer algo como abaixo? *s1 = ‘w’;

comparando iteradores de contêineres diferentes

É legal comparar iteradores de contêineres diferentes? std::vector foo; std::vector bar; A expressão foo.begin() == bar.begin() produz um comportamento falso ou indefinido? (Eu estou escrevendo um iterador personalizado e deparei com essa questão ao implementar o operator== .)

É o C ++ std :: set thread-safe?

Eu tenho uma pergunta sobre a segurança do thread de std :: set. Tanto quanto sei, posso iterar sobre um conjunto e adicionar / apagar membros e isso não invalida os iteradores. Mas considere seguir o cenário: thread ‘A’ itera sobre um conjunto de shared_ptr thread ‘B’ ocasionalmente adiciona itens a este conjunto. Eu experimentei […]

Por que não é possível inicializar simples (com chaves) 2D std :: array?

Duplicar Possível: c ++ porque o comportamento initializer_list para std :: vector e std :: array são diferentes Eu defini matriz 2D simples (3X2): std::array<std::array,2> a { {1,2,3}, {4,5,6} }; Fiquei surpreso que essa boot não funcionou, com o erro gcc4.5: too many initializers for ‘std::array<std::array, 2u>’ Por que não posso usar essa syntax? Eu […]

O que acontece se você incrementar um iterador igual ao iterador final de um contêiner STL

E se eu incrementar um iterador por 2 quando ele apontar para o último elemento de um vetor? Nesta pergunta perguntando como ajustar o iterador para um contêiner STL por dois elementos, duas abordagens diferentes são oferecidas: use uma forma de operador aritmético – + = 2 ou ++ duas vezes ou use std :: […]

Existe uma maneira de acessar o contêiner subjacente de adaptadores de contêiner STL?

Existe uma maneira padrão de acessar o contêiner subjacente de stack , queue , priority_queue ? Eu encontrei um método chamado: _Get_container() na implementação do VS2008 de stack e queue , mas ninguém para priority_queue ! Eu acho que não é padrão de qualquer maneira. Além disso, eu sei que é uma pergunta boba! Onde […]

O que a biblioteca padrão garante sobre a atribuição de movimentação automática?

O que o padrão C ++ 11 diz sobre a atribuição de movimentação automática em relação à biblioteca padrão? Para ser mais concreto, o que, se alguma coisa, é garantido sobre o que o selfAssign faz? template std::vector selfAssign(std::vector v) { v = std::move(v); return v; }

std :: vector, construção padrão, C ++ 11 e quebra de alterações

Corri hoje contra uma questão bastante sutil sobre a qual gostaria de ter sua opinião. Considere a seguinte class idiomática de corpo compartilhado de variedade de jardim: struct S { S() : p_impl(new impl) {} private: struct impl; boost::shared_ptr p_impl; }; A diversão aparece quando você tenta colocá-los em vetores da seguinte maneira: std::vector v(42); […]

Como o currying pode ser feito em C ++?

O que é currying? Como o currying pode ser feito em C ++? Por favor explique os fichários no container STL?

Por que as classs std :: fstream não usam std :: string?

Esta não é uma questão de design, na verdade, embora possa parecer. (Bem, ok, é uma questão de design). O que eu estou querendo saber é por que as classs C ++ std::fstream não tomam um std::string em seus construtores ou methods abertos. Todo mundo adora exemplos de código assim: #include #include #include int main() […]