As classes de contêineres do STL tornar a programação produtivo , seguro e robusto. São matrizes inteligentes que executam automaticamente a alocação de memória , é possível redimensionar , deixá-lo passar variáveis por referência, inserir elementos em qualquer ponto , todos com chamas eficiência. Eles fornecem uma boa razão para mudar de C , com suas matrizes mudos para C + +. STL oferece dois tipos de classes container : simples e associativos, onde uma chave está associada a cada objeto armazenado. Coisas que você precisa
Conhecimentos básicos de C + +
Um compilador C + + , e de preferência um ambiente de desenvolvimento integrado
Show Mais instruções
1
Ler e opcionalmente memorizar as duas categorias de classes container . Memorizá-las não faz mal a ninguém e será um benefício para você , a longo prazo
Containers Simples: . Vetor <> , listas < > , <>, pilha fila <>, <> deque
Associativo Containers: mapa < > , conjunto < > , multimap < > , multiconjunto < >
2
Saiba mais sobre todas as classes de contêineres pelo que está sendo mostrado como um recipiente simples podem ser usados. Este tutorial irá ilustrar os métodos de vetor < > .
3
Atribuir um tamanho para o vetor. Você pode atribuir o tamanho do vetor usando qualquer um dos construtores sobrecarregados . Além disso, você pode utilizar a reserva () ou atribuir método () depois de ter declarado um vetor. Todos os métodos são mostrados abaixo:
vetor arr (50 ) //especificar a capacidade
vetor arr (50, 17 ) //especificar a capacidade e dar todos os elementos de um valor padrão (17)
arr2 vetor (arr ) //inicializar um vetor de outro vetor
vetor vec ;
vec.reserve (100 ) //ou de reserva de uso () para alocar memória
4
Iterate através de um vetor. Você pode fazer isso usando o operador padrão de índice [] ou através de iteradores , que são uma característica especial STL . Suas habilidades estão além do escopo deste tutorial. Os seguintes trechos de código demonstrar o tamanho ( ) , begin () e end ( ) membros :
//usando o padrão de indexação
for (int i = 0; i } cout
//usando iteradores
for ( vector < > :: iterator iter = vec.begin (); ! iter = vec.end (); iter + +) { cout
}
5
Adicionar um elemento no final , . remover esse elemento, inserir um elemento no meio e retornar o tamanho do recipiente Você pode realizar todas essas funções , usando a push_back () , pop_back () , insert ( ) e tamanho () métodos , respectivamente, como mostrado abaixo: < br > vec.push_back (35);
vec.pop_back ();
vec.insert ( pos , 19 ) //pos é o local
cout
6
Apague os elementos dentro um intervalo, apagar o resto dos elementos e certifique-se que o vetor está vazio. Para estes, você usa a apagar as funções de membro () , clear () e empty () .
vec.erase ( vec.begin () + 5, vec.end () - 5 ) //apagar todos os elementos, exceto o primeiro eo último 5
vec.clear () //apagar todos os elementos
if (true vec.empty == () . ) {... } //verificar se vetor é vazio
7
Confira todas as funções de membro oferecidos em vetor < > Muitos são comuns em todo o resto das classes container :
_Destroy () , _Eq () , _Lt () , _Ucopy () , _Ufill () , atribuir () , em ( ) , begin () , para trás ( ), capacidade () , clear () , empty () , end () , apagar () , frente ( ) , get_allocator () , max_size () , insert ( ) , o operador = , o operador [], pop_back () , push_back () , rbegin () , rend () , reserva () , redimensionar ( ) , size () , swap ( ) , ~ vetor ().
8
Certifique-se de incluir o arquivo de cabeçalho vector.h na parte superior do seu arquivo de origem antes de testar este código para você mesmo . cada classe container tem seu próprio arquivo de cabeçalho. uma lista < > exigirá list.h , uma fila < > exigirá Queue.h , e assim por diante .