Vector modificadores em C ++ recipiente de biblioteca Sequências em C ++ Simplificado - Parte 7 Divisão 2 Introdução Esta é a parte 7 da minha série, Contentores Biblioteca Sequências em C ++, simplificado. Nesta parte da série, nós olhamos para os métodos que irão modificar um vector em C ++. Presumo que você leu as partes anteriores desta série. Nota: Se você não pode ver o código ou se você acha que alguma coisa está faltando (link quebrado, imagem ausente), apenas contacte-me em [email protected].
Ou seja, contacte-me para o menor problema que você tem sobre o que você está lendo. push_back void (const T & x); Este método adiciona um novo elemento ao fim da lista de vetor. Leva o valor do novo elemento como argumento. O valor pode ser representado por seu identificador no argumento. Lembre-se, no parâmetro, T é o tipo de espaço reservado. Fica para um int ou float ou qualquer outro tipo de objeto, incluindo objetos instanciados. Se a lista está vazia vector, o método traz no primeiro elemento.
Leia e tente o seguinte código: #include #include using namespace std; int main () {myVtor vetor; myVtor.push_back (4,5); myVtor.push_back (3.6); cout cout retornar 0; } Se uma exceção é lançada pelo método push_back (), esse método não tem efeito. Se uma exceção lançada a partir de um vector não é detectada, o programa pode abortar. Se o código do vetor e seu programa como um todo é bem escrito, dificilmente uma exceção ser acionada. pop_back void (); Este método pega o último elemento da lista do vetor. Ela não retorna nada.
É possível saber se o elemento foi removido por verificar o tamanho do vector. O tamanho da lista de vector é reduzida de 1 (veremos como verificar o tamanho mais tarde). O programa seguinte, que mostra nada, mostra a utilização do método pop_back (). #include #include using namespace std; int main () {myVtor vetor; myVtor.push_back (4,5); myVtor.push_back (3.6); myVtor.pop_back (); retornar 0; } Inserir Método Vou dar-lhe dois tipos de o método de inserção.
inserção iterator (iterador posição, const T & x); A partir dos parâmetros, este método insere o valor de x em uma lista vector numa posição identificada por uma iteração. Ele retorna um iterador da posição onde foi feita a cópia. Assim, o iterador parâmetro eo iterador retorno deve referir-se a mesma coisa. Após a inserção de um elemento, o tamanho da lista de vector é aumentado em um. Nota: Uma iteração pode ser incrementado para se referir ao elemento seguinte ou decrementado para se referir ao elemento anterior.
Leia e tente o seguinte código: #include #include using namespace std; int main () {myVtor vector
(5); myVtor [0] = 'A'; myVtor [1] = 'B'; myVtor [2] = 'C'; myVtor [3] = 'D'; myVtor [4] = 'E'; __gnu_cxx :: __ normal_iterator>> iter1 = myVtor.begin (); ++ iter1; __gnu_cxx :: __ normal_iterator>> iter2 = myVtor.insert (iter1, 'Z'); cout retornar 0; } O segredo eu mencionei na parte anterior da série se manifesta aqui o seguinte: O método começa retorna um iterador. O método de inserção usa esse iterador como um de seus argumentos para inserir um elemento.
Como eu prometi, você realmente não precisa saber os detalhes de iterador, a fim de usá-lo com o vector. A penúltima declaração acima confirma que o elemento foi inserido. inserção void (posição do iterador, size_type n, const T & x); Com este método de inserção de outra, existe um novo parâmetro, o qual vai de entre os outros parâmetros. Este novo parâmetro é o número de elementos que você deseja inserir. O primeiro parâmetro dá início a posição de inserção na lista do vetor. O último parâmetro é o mesmo objeto único que será inserido consecutivamente como novos elementos.
Esse método retorna nada (void). Leia e tente o seguinte código: #include #include using namespace std; int main () {myVtor vetor
(2); myVtor [0] = 'A'; myVtor [1] = 'B'; __gnu_cxx :: __ normal_iterator>> iter = myVtor.begin (); ++ iter; myVtor.insert (iter, 3, 'Z'); cout cout cout cout cout return 0; } O próximo método tem dois tipos. apagar iterator (iterador posição); Esse método remove um elemento designado pelo argumento iterador. Ele retorna a iteração da posição do elemento removido.
Leia e tente o seguinte código: #include #include using namespace std; int main () {myVtor vector
(5); myVtor [0] = 'A'; myVtor [1] = 'B'; myVtor [2] = 'C'; myVtor [3] = 'D'; myVtor [4] = 'E'; __gnu_cxx :: __ normal_iterator>> iter1 = myVtor.end (); --iter1; --iter1; myVtor.erase (iter1); cout retornar 0; } O programa usa o método final para apontar apenas após o último elemento. O iterador é diminuído duas vezes. O iterador resultante é agora usado para apagar o quarto elemento. O penúltimo comunicado exibe o novo quarto elemento, que foi o quinto elemento.
Mesmo que um método ou função pode retornar um valor, você não tem que usar (atribuir) o valor retornado. O valor de retorno do método de apagamento aqui não foi usado. apagar iterator (iterador primeiro, iterador passado); O método pode apagar uma série de elementos na lista. Leva uma iteração que se refere ao primeiro elemento da faixa e outra iteração que se refere ao último elemento da faixa. O iterador devolvido refere-se ao elemento que foi apenas abaixo da faixa.
O código a seguir ilustra isso: #include #include using namespace std; int main () {myVtor vector
(5); myVtor [0] = 'A'; myVtor [1] = 'B'; myVtor [2] = 'C'; myVtor [3] = 'D'; myVtor [4] = 'E'; __gnu_cxx :: __ normal_iterator>> iter1 = myVtor.begin (); ++ iter1; __gnu_cxx :: __ normal_iterator>>