O que é um vetor em C ++?
Vetores são contêineres STL usados para armazenar dados dinamicamente. Eles também são considerados como a representação dinâmica de arrays, com a capacidade de aumentar ou diminuir seu tamanho automaticamente dependendo da inserção e exclusão dos elementos. Assim como sua contraparte estática, ele pode armazenar apenas uma única entidade em um único índice. Ambos os processos de inserção e exclusão ocorrem do último índice ao primeiro índice. Embora a exclusão demore um tempo constante, a inserção de um elemento pode levar um tempo diferencial, pois o vetor precisa se redimensionar após a adição do elemento.
Assim como outros contêineres STL, a classe vetorial também fornece várias funções-membro. Essas funções fazem parte de três subcategorias:
- Iteradores
- Capacidade
- Modificadores
1. Iteradores: funções do iterador são aquelas funções que permitem iterar mover através de um contêiner de vetor. A seguir estão os tipos de iteradores fornecidos por um vetor C ++:
begin (), end (), rbegin (), rend (), cbegin (), cend (), crbegin (), crend ().
2. Capacidade: Essas funções-membro do vetor C ++ lidam com o tamanho e a capacidade de um contêiner de vetor. A seguir estão os tipos de capacidade fornecidos pelo vetor C ++:
size (), max_size (), capacity (), resize (n), empty (), shrink_to_fit (), reserve ().
3. Modificadores: funções modificadoras são as funções que modificam um contêiner de vetor, como remover um elemento, excluir e assim por diante. A seguir estão os tipos de modificadores fornecidos pelo vetor C ++:
assign (), push_back (), pop_back (), insert (), erase (), swap (), clear (), emplace (), emplace_back ().
Sintaxe
A sintaxe para declarar um vetor em C ++ é:
vetor
Descrição da sintaxe
- Palavra-chave “vetor”: a palavra-chave “vetor” é fornecida no início para declarar um vetor em C ++ .
- type: este parâmetro é o tipo de dados dos elementos que serão armazenados no vetor.
- vector_name: Este é o nome da variável do vetor especificada pelo usuário.
- size: Este é um parâmetro opcional que especifica o tamanho do vetor.
Exemplos de vetores
O programa a seguir verifica se o vetor contém um elemento duplicado. E retorna verdadeiro se contiver o elemento duplicado; caso contrário, retorna falso.
#include
usando namespace std;
//função para verificar se o vetor
//contém um elemento duplicado ou não
bool containsDuplicate (vetor
{
//verifique se o vetor está vazio
if (nums.empty ())
return false;
//classificar o vetor
sort (nums.begin (), nums.end ());
int i=0;
int j=i + 1;
while (j { //verifique se o elemento atual //não é igual ao seu sucessor if (nums [i]!=nums [j]) { i ++; j ++; } outro return true; } return false; } int main () { vetor //imprime elementos do vetor cout <<"Os elementos do vetor são"; para (int x: nums) cout < cout < //imprimir o resultado if (containsDuplicate (nums)) cout <<"O vetor contém um elemento duplicado"; outro cout <<"O vetor não contém um elemento duplicado"; } No programa descrito acima, a função duplicada verifica se há elementos duplicados no vetor. A função retorna falso se o vetor estiver vazio, pois um vetor vazio não pode conter um elemento duplicado. Se o elemento não estiver vazio, você precisará classificar o vetor para que todas as duplicatas sejam reordenadas em correspondência com seus originais. Depois disso, você precisa iterar o vetor para verificar se dois elementos sucessivos são iguais. Se for assim, a função retorna verdadeiro; caso contrário, você obtém falso como a instrução de retorno. O vetor em C ++ armazena a referência dos objetos e não os dados diretamente. Esses objetos podem ser de qualquer tipo de dados , como inteiro, char, string, etc. Ao contrário dos contêineres estáticos, como uma matriz, um vetor não precisa de um tamanho para ser inicializado. Você pode inicializar um vetor sem definir o tamanho do contêiner, pois ele pode aumentar ou diminuir seu tamanho dinamicamente. Você pode inicializar um vetor de 6 maneiras diferentes e agora irá explorar todas essas maneiras em detalhes na próxima seção. Estas 6 maneiras são: As seguintes maneiras diferentes podem ser usadas para inicializar o vetor em C ++: O método push_back () do vetor de classe é usado para empurrar ou inserir elementos em um vetor. Ele insere cada novo elemento no final do vetor e o tamanho do vetor é aumentado em 1. Sintaxe vector_name.push_back (dados) vector_name é o nome do vetor. O método push_back () aceita um elemento e o insere no final do vetor. Considere um vetor v1. Entrada: v1.push_back (100) v1.push_back (200) v1.push_back (300) Saída: o vetor resultante é: 100 200 300 com tamanho 3. Entrada: v1.push_back (1) v1.push_back (2) Saída: o vetor resultante é: 100 200 300 1 2 com tamanho 5. O programa a seguir ilustra como inicializar um vetor em C ++ usando o método push_back (): #include #include usando namespace std; int main () { //declara um vetor vetor //inicializar o vetor usando push_back () v1.push_back (100); v1.push_back (200); v1.push_back (300); v1.push_back (1); v1.push_back (2); cout <<"Os elementos do vetor são: \ n"; //vetor transversal para (int i=0; i { //imprime os elementos do vetor cout < } return 0; } O construtor sobrecarregado também pode ser usado para inicializar vetores em C ++. Este construtor aceita dois parâmetros. O tamanho do vetor e o valor a ser inserido são fornecidos durante a inicialização do vetor. O valor fornecido será inserido no vetor várias vezes (igual ao tamanho fornecido do vetor). Sintaxe vector O parâmetro size é o número de elementos a serem inseridos no vetor (ou simplesmente o tamanho do vetor) e os dados são o valor a ser inserido. Entrada: vetor Saída: o vetor resultante será: 2 2 2 2 2 Entrada: vetor Saída: o vetor resultante será: 1 1 1 1 O programa a seguir ilustra como inicializar um vetor em C ++ usando o construtor sobrecarregado: #include #include usando namespace std; int main () { //inicializar o tamanho tamanho interno=5; //inicializar o vetor usando o construtor sobrecarregado vetor //imprime os elementos do vetor cout <<"O vetor v1 é: \ n"; para (int i=0; i { cout < } cout <<"\ n"; //inicializar o vetor v2 vetor //imprime elementos do vetor v2 cout <<"\ nO vetor v2 é: \ n"; para (int i=0; i { cout < } cout <<"\ n \ n"; return 0; } Outra maneira de inicializar um vetor em C ++ é passar um array de elementos para o construtor de classe de vetor. Os elementos da matriz serão inseridos no vetor na mesma ordem, e o tamanho do vetor será ajustado automaticamente. Sintaxe vetor Você passa a matriz de elementos para o vetor no momento da inicialização. Entrada: vetor Saída: o vetor resultante será: 10 20 30 40 50 Entrada: vetor Saída: o vetor resultante será: a b c d e O programa a seguir ilustra como inicializar um vetor em C ++ passando uma matriz para o construtor da classe de vetor: #include #include usando namespace std; int main () { //passe um array de inteiros para inicializar o vetor vetor //imprime elementos do vetor cout <<"Os elementos do vetor são: \ n"; para (int i=0; i { cout < } cout <<"\ n \ n"; //passe uma matriz de caracteres para inicializar o vetor vetor //imprime elementos do vetor cout <<"Os elementos do vetor são: \ n"; para (int i=0; i { cout < } cout <<"\ n \ n"; return 0; } Esta é uma das maneiras mais padrão de inicializar vetores em C ++ de maneira elegante. Você pode inicializar um vetor usando uma matriz que já foi definida. Você precisa passar os elementos da matriz para o construtor do iterador da classe vetorial. Sintaxe data_type array_name [n]={1,2,3}; vetor A matriz de tamanho n é passada para o construtor do iterador da classe de vetor. Entrada: int a1 [5]={10, 20, 30, 40, 50} vetor Saída: o vetor resultante será: 10 20 30 40 50 Entrada: char a2 [5]={‘a’,’b’,’c’,’d’,’e’} vetor Saída: o vetor resultante será: a b c d e O programa a seguir ilustra como passar uma matriz existente para o construtor do iterador da classe de vetor para inicializar um vetor em C ++: #include #include usando namespace std; int main () { //inicializa uma matriz de inteiros int a1 [5]={10, 20, 30, 40, 50}; //inicializar vetor vetor //imprime elementos do vetor cout <<"Os elementos do vetor são: \ n"; para (int i=0; i { cout < } cout <<"\ n \ n"; //inicializar um array de char char a2 [5]={‘a’,’b’,’c’,’d’,’e’}; vetor //imprime elementos do vetor cout <<"Os elementos do vetor são: \ n"; para (int i=0; i { cout < } cout <<"\ n \ n"; return 0; } O construtor de intervalo da classe vetorial também pode ser usado para inicializar um vetor. Você passa os iteradores de um vetor existente para o construtor para especificar o intervalo dos elementos a serem inseridos no novo vetor. Sintaxe vector Aqui, você deve passar os iteradores apontando para o vetor existente para o construtor, para inicializar o novo vetor. Os elementos que estão no intervalo passado como argumentos são inseridos no novo vetor. Entrada: vetor vetor Saída: o vetor resultante será: 10 20 30 40 50 Entrada: vetor vetor Saída: o vetor resultante será: 10 20 30 O programa a seguir ilustra como inicializar um vetor em C ++ usando um vetor existente: #include #include usando namespace std; int main () { //inicializar um vetor vetor //inicializar vetores usando o construtor de intervalo vetor vetor //imprime elementos do vetor cout <<"Os elementos do vetor são: \ n"; para (int i=0; i { cout < } cout <<"\ n \ n"; //imprime elementos do vetor cout <<"Os elementos do vetor são: \ n"; para (int i=0; i { cout < } cout <<"\ n \ n"; return 0; } A função fill (), como o nome sugere, preenche ou atribui todos os elementos no intervalo especificado ao valor especificado. Este método também pode ser usado para inicializar vetores em C ++. Sintaxe preencher (início, fim, valor) A função fill () aceita três parâmetros de iteradores iniciais e finais do intervalo e o valor a ser preenchido. O início do iterador está incluído no intervalo, enquanto o final do iterador não está incluído. Considere os vetores v1 e v2 de tamanho 5. Entrada: preencher (v1.begin (), v1.end (), 6) Saída: o vetor resultante será: 6 6 6 6 6 Entrada: fill (v2.begin () + 2, v2.begin () + 4, 6) Saída: o vetor resultante será: 0 0 6 6 0 O programa a seguir ilustra como inicializar um vetor em C ++ usando a função fill (): #include #include usando namespace std; int main () { //declara um vetor vetor //inicializar o vetor usando o método fill () preencher (v1.begin (), v1.end (), 6); //declara outro vetor vetor //inicializar v2 preencher (v2.begin () + 2, v2.begin () + 4, 6); //imprime elementos do vetor cout <<"Os elementos do vetor são: \ n"; para (int i=0; i { cout < } cout <<"\ n \ n"; //imprime elementos do vetor cout <<"Os elementos do vetor são: \ n"; para (int i=0; i { cout < } cout <<"\ n \ n"; return 0; } Avance sua carreira como desenvolvedor MEAN stack com o Desenvolvedor Web Full Stack-Programa MEAN Stack Master . Inscreva-se agora! Este artigo o guiou pelos meandros dos vetores em c ++ e como inicializá-los. Você olhou alguns exemplos comuns de vetores e seis maneiras diferentes de inicializar vetores. Para nomear alguns deles, você pode inicializar vetores usando o método push_back (), usando um construtor sobrecarregado, uma matriz existente ou um vetor, usando o método fill (), etc. Você olhou as etapas e exemplos de todos esses métodos para inicializar vetores. Se quiser aprender mais sobre os conceitos básicos da linguagem de programação C ++, você pode verificar o guia do Simplilearn em Programação C ++ para iniciantes . Você também pode obter uma visão geral completa das tecnologias usadas no desenvolvimento de software full stack por meio de nosso curso em Desenvolvimento Web Full Stack . Este curso é ministrado por especialistas do setor e irá guiá-lo por algumas das tecnologias mais populares, como DevOps , Agile , AWS , Java , HTML , etc. Você também deve verificar alguns de nossos cursos online gratuitos . Se você tiver dúvidas ou sugestões para nós, mencione-as na caixa de comentários e nossos especialistas responderão para você o mais rápido possível. Boa aprendizagem! Inicializando um vetor em C ++
Maneiras de inicializar um vetor em C ++
Usando o método push_back () para inserir valores no vetor
Exemplo
Etapas
Usando o construtor sobrecarregado
Exemplo
Etapas
Passando uma matriz para o construtor de vetores
Exemplo
Etapas
Usando uma matriz existente
Exemplo
Etapas
Usando um vetor existente
Exemplo
Etapas
Usando o método fill ()
Exemplo
Etapas
Considerações finais!