As funções de membro do vetor C ++ podem ser colocadas nas seguintes categorias: construção, capacidade, iteradores, acesso a elementos e modificadores. Cada uma dessas categorias tem muitas funções. Todas essas funções não são usadas em muitas aplicações. Este artigo explica o mais útil dessas funções. Com exceção da categoria Modificadores, não mais de três funções para cada categoria são explicadas neste artigo. A categoria Modificadores pode ser dividida em mais sub -categorias. Em cada uma dessas sub -categorias, não mais que três funções serão explicadas. Se mais de três funções forem explicadas para uma determinada categoria, elas serão ensinadas por meio de ilustração.
Um programa para usar o vetor C ++ deve começar com,
#incluir
#incluir
Conteúdo do artigo
Construção/destruição
Os seguintes segmentos de código mostram maneiras diferentes de criar o mesmo vetor:
vetorvtr;
vtr.push_back (5.5);
vtr.push_back (6.6);
vtr.push_back (7.7);
vtr.push_back (8.8);
vtr.push_back (9.9);
vetorvtr (3); // com número inicial de elementos
vtr [0] = 5.5;
VTR [1] = 6.6;
VTR [2] = 7.7;
vetorVtr (5, 0.0); //Não. Elementos: 5; cada valor: 0.0
vetorvtr 5.5, 6.6, 7.7, 8.8, 9.9; // inicializando
vetorvtr = 5.5, 6.6, 7.7, 8.8, 9.9; // Construindo e copiando
vetorvtr;
vtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vetorVtr1 5.5, 6.6, 7.7, 8.8, 9.9;
vetorvtr2 (vtr1);
const vetorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
A const vetor é um vetor cujos elementos não podem ser alterados. Os valores são somente leitura.
Destruição
Para destruir um vetor, deixe -o sair do escopo.
Capacidade
tamanho () const noexcept
O número de elementos em um vetor é devolvido por esta função de membro. Com o seguinte segmento de código, a saída é 5:
vetorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
flutuar sz = vtr.tamanho();
cout << sz << '\n';
vazio () const Noexcept
Este método retorna true (1) se o vetor não tiver elemento e falso (0) se o vetor tiver pelo menos um elemento. Com o código a seguir, a saída é 1 (para verdadeiro):
vetorvtr = ;
bool bl = vtr.vazio();
cout << bl << '\n';
Acesso ao iterador e vetorial
Um iterador é um ponteiro elaborado. Quando o vetor, vtr foi criado, vtr.começar() retornaria um iterador, apontando para o primeiro elemento da lista. Pode então ser incrementado para acessar os elementos após o primeiro, de acordo.
Quando o vetor, vtr foi criado, vtr.fim() retornaria um iterador, apontando logo após o último elemento da lista. Então pode ser diminuído para acessar o último elemento e elementos antes do último, de acordo. O programa a seguir ilustra o seguinte:
#incluir
#incluir
usando namespace std;
int main ()
vetorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vetor:: iterator iterb = vtr.começar();
iterb ++;
vetor:: iterator itere = vtr.fim();
ITERE--;
cout << *iterB << ", " << *iterE << " << endl;
*iterb = 66.66; *ITERE = 99.99;
cout << *iterB << ", " << *iterE << " << endl;
retornar 0;
A saída é:
6.6, 9.9
66.66, 99.99
Os valores de dois elementos foram acessados, lidos e alterados por dois iteradores.
Acesso ao elemento
em (i)
Isso é semelhante ao VTR [i], e é melhor. Pode ser usado para ler ou alterar o valor de um elemento. A contagem de índice começa de zero. O leitor pode testar o seguinte programa:
#incluir
#incluir
usando namespace std;
int main ()
vetorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
cout << vtr[1] << ", " << vtr[4] << " << endl;
VTR [1] = 66.66; VTR [4] = 99.99;
cout << vtr[1] << ", " << vtr[4] << " << endl;
retornar 0;
A saída é:
6.6, 9.9
66.66, 99.99
Os valores de dois elementos foram acessados, lidos e alterados através da referência.
Retornando o primeiro valor
O código a seguir retorna (copia) o primeiro elemento:
vetorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
flutuar val = vtr.frente();
cout << val << endl;
A saída é, 5.5. A função de membro usada aqui é: Front ().
Retornando o último valor
O código a seguir retorna (copia) o último elemento:
vetorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
flutuar val = vtr.voltar();
cout << val << endl;
A saída é, 9.9. A função de membro usada aqui é: back ().
Empurre e volte para trás
retrocesso()
Um elemento pode ser anexado na parte de trás do vetor. O valor pode ser literal ou ser representado pelo identificador. O código a seguir ilustra o seguinte:
flutuar FLT = 10.10;
vetorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vtr.push_back (FLT);
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
A lista original é:
5.5, 6.6, 7.7, 8.8, 9.9
A nova lista é:
5.5, 6.6, 7.7, 8.8, 9.9, 10.1
pop_back ()
O último elemento pode ser removido do vetor. O código a seguir ilustra o seguinte:
vetorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vtr.pop_back ();
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
A lista original é:
5.5, 6.6, 7.7, 8.8, 9.9
A nova lista é:
5.5, 6.6, 7.7, 8.8
Observação: O vetor não possui as funções de membro push_front () e pop_front ().
Inserção
Inserções em frente ao elemento apontado para, pelo iterador.
inserir (p, e)
Isso insere um elemento antes do elemento apontado pelo iterador, p. e pode ser um literal ou identificador. Ilustração:
flutuar FLT = 7.0;
vetorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vetor:: iterator iterb = vtr.começar();
iterb ++; iterb ++;
vtr.inserir (iterb, FLT);
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
A lista original é:
5.5, 6.6, 7.7, 8.8, 9.9
A nova lista é:
5.5, 6.6, 7, 7.7, 8.8, 9.9
Esta função de inserção retorna um iterador (não codificado) que aponta para o elemento inserido.
inserir (p, il)
Uma lista pode ser inserida na frente do elemento apontado pelo iterador. Ilustração:
vetorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vetor:: iterator iterb = vtr.começar();
iterb = iterb + 2;
vtr.inserir (iterb, 7.1, 7.2, 7.3);
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
A lista original é:
5.5, 6.6, 7.7, 8.8, 9.9
A nova lista é:
5.5, 6.6, 7.1, 7.2, 7.3, 7.7, 8.8, 9.9
Esta função de inserção retorna um iterador (não codificado) que aponta para o primeiro elemento inserido.
inserir (p, n, t)
Insere o mesmo valor t, n vezes, em frente ao elemento apontado por p. Ilustração:
vetorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vetor:: iterator iterb = vtr.começar();
iterb = iterb + 2;
vtr.inserir (iterb, 3, 7.1);
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
A lista original é:
5.5, 6.6, 7.7, 8.8, 9.9
A nova lista é:
5.5, 6.6, 7.1, 7.1, 7.1, 7.7, 8.8, 9.9
Esta função de inserção retorna um iterador (não codificado) que aponta para o primeiro elemento inserido.
inserir (p, i, j)
Um intervalo pode ser copiado de outro vetor e inserido no vetor de interesse. O código a seguir ilustra o seguinte:
vetorvtr1 = 7.1, 7.2, 7.3, 7.4, 7.5;
vetor:: iterator iterb1 = vtr1.começar();
iterb1 = iterb1 + 1;
vetor:: iterator itEre1 = vtr1.fim();
Irete1 = itEre1 - 2;
vetorvtr2 = 5.5, 6.6, 7.7, 8.8, 9.9;
vetor:: iterator iterb2 = vtr2.começar();
iterb2 = iterb2 + 2;
Vtr2.inserir (iterb2, iterb1, itre1);
para (int i = 0; icout << vtr2[i] << ", ";
cout << endl;
A lista original para o VTR2 é:
5.5, 6.6, 7.7, 8.8, 9.9
A nova lista para VTR2 é:
5.5, 6.6, 7.2, 7.3, 7.7, 8.8, 9.9
O intervalo identificado a ser copiado é [7.2, 7.3, 7.4), indicado como [i, j), significando o último valor, 7.4 não está incluído.
Esta função de inserção retorna um iterador (não codificado) que aponta para o primeiro elemento inserido.
Atribuindo elementos (substituições)
Atribuir a elementos significa substituir os elementos por cópias. Todas as funções de membro da tarefa, retorno vazio.
Atribuir (IL)
Uma lista pode substituir todos os elementos do vetor em questão. A lista pode ser mais longa ou mais curta. Ilustração para lista curta:
vetorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vetor:: iterator iterb = vtr.começar();
iterb = iterb + 2;
vtr.Atribuir (55.55, 66.66, 77.77);
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
A lista original é:
5.5, 6.6, 7.7, 8.8, 9.9
A nova lista é:
55.55, 66.66, 77.77
Ilustração para uma lista mais longa:
vetorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vetor:: iterator iterb = vtr.começar();
iterb = iterb + 2;
vtr.Atribuir (55.55, 66.66, 77.77, 88.88, 99.99, 1010.1111);
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
A lista original é:
5.5, 6.6, 7.7, 8.8, 9.9
A nova lista é:
55.55, 66.66, 77.77, 88.88, 99.99, 1010.11
atribuir (n, t)
O mesmo valor, repetido várias vezes, pode substituir todos os elementos do vetor em questão. A nova lista pode ser mais longa ou mais curta. Ilustração para lista curta:
vetorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vetor:: iterator iterb = vtr.começar();
iterb = iterb + 2;
vtr.Atribuir (2, 77.77);
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
A lista original é:
5.5, 6.6, 7.7, 8.8, 9.9
A nova lista é:
77.77, 77.77
atribuir (i, j)
Um intervalo pode ser copiado de outro vetor e usado para substituir todo o conteúdo do vetor de interesse. O código a seguir ilustra o seguinte:
vetorvtr1 = 7.1, 7.2, 7.3, 7.4, 7.5;
vetor:: iterator iterb1 = vtr1.começar();
iterb1 = iterb1 + 1;
vetor:: iterator itEre1 = vtr1.fim();
Irete1 = itEre1 - 2;
vetorvtr2 = 5.5, 6.6, 7.7, 8.8, 9.9;
vetor:: iterator iterb2 = vtr2.começar();
iterb2 = iterb2 + 2;
Vtr2.atribuir (iterb1, itre1);
para (int i = 0; icout << vtr2[i] << ", ";
cout << endl;
A lista original para o VTR2 é:
5.5, 6.6, 7.7, 8.8, 9.9
A nova lista para VTR2 é:
7.2, 7.3
O intervalo identificado a ser copiado é [7.2, 7.3, 7.4), indicado como [i, j), significando o último valor, 7.4 não está incluído.
Apagar
Usa o iterador.
Apagar (Q)
Remove o elemento apontado por q, reduzindo o comprimento do vetor. Retorna o iterador apontando para o próximo elemento, após a remoção. Exemplo:
vetorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vetor:: iterator iterb = vtr.começar();
iterb = iterb + 2;
vetor:: iterator itr = vtr.apagar (iterb);
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
cout << *itR << endl;
A lista original é:
5.5, 6.6, 7.7, 8.8, 9.9
A saída é:
5.5, 6.6, 8.8, 9.9,
8.8
Apagar (Q1, Q2)
Remove uma variedade de elementos que começam a partir disso apontados para o iterador Q1, para o apontado pelo Q2, mas excluindo o de Q2 - ou seja, ele remove [Q1, Q2). Retorna o iterador apontando para o próximo elemento, após a remoção do alcance. Ilustração:
vetorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vetor:: iterator iterb = vtr.começar();
iterb = iterb + 2;
vetor:: iterator itere = vtr.fim();
itre = itere - 1;
vetor:: iterator itr = vtr.apagar (iterb, itre);
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
cout << *itR << endl;
A lista original é:
5.5, 6.6, 7.7, 8.8, 9.9
A saída é:
5.5, 6.6, 9.9,
9.9
Claro
claro()
Retorna vazio. Todos os elementos em um vetor podem ser removidos, reduzindo o comprimento do vetor a zero. É assim:
vetorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vtr.claro();
cout << vtr.size() << endl;
A lista original é:
5.5, 6.6, 7.7, 8.8, 9.9
A saída é:
0
Trocando
x.troca (y)
Os elementos de dois vetores diferentes podem ser trocados, independentemente de seus diferentes comprimentos. Ilustração:
vetorvtr1 = 1.1, 2.2, 3.3, 4.4;
vetorvtr2 = 5.5, 6.6, 7.7, 8.8, 9.9;
Vtr2.troca (vtr1);
cout << "New vtr1: ";
para (int i = 0; icout << vtr1[i] << ", ";
cout << endl;
cout << "New vtr2: ";
para (int i = 0; icout << vtr2[i] << ", ";
cout << endl;
A saída é:
Novo Vtr1: 5.5, 6.6, 7.7, 8.8, 9.9,
Novo Vtr2: 1.1, 2.2, 3.3, 4.4,
Conclusão
O vetor C ++ tem muitas funções de membro. Essas funções podem ser categorizadas nas seguintes subcategorias: construção/destruição, capacidade, acesso de iterador e vetorial, acesso a elementos, empurrar e recuar, inserir, atribuir elementos (substituições), apagar, limpar e trocar. As funções mais úteis em cada uma dessas subcategorias foram explicadas acima.