Trilhas
/
C++
C++
/
Programa
/
Arrays e vetores
Ar

Arrays e vetores em C++

3 exercícios

Sobre Arrays e vetores

Arrays e vectors

C++ oferece diferentes contêineres para armazenar elementos do mesmo tipo de forma ordenada. Existe o std::array para contêineres de tamanho fixo e o std::vector, que vem com a capacidade de redimensionamento dinâmico.

Construção

Quando você declara um array ou um vector, precisa especificar o tipo dos elementos que o contêiner vai armazenar. Arrays também precisam de um tamanho. Veja estes exemplos para ver a inicialização dos dois tipos de contêiner:

#include <array>
#include <string>

// std::array<element_type, size> variable_name {list of elements}
std::array<std::string, 3> indie_rock {"yeah", "yeah", "yeah"};
// indie_rock contains the elements "yeah" three times

Vectors geralmente precisam de mais espaço, pois alocam memória para crescer mais adiante. Você não precisa especificar um tamanho:

#include <vector>

// std::vector<element_type> variable_name {list of elements}
std::vector<int> countdown {3, 2, 1};
// my_vector contains the elements 3, 2 and 1

Nota: Você ainda não precisa conhecer a mecânica exata por trás do conceito de template, ele terá seu próprio conceito mais adiante na árvore do programa de estudos.

Acesso aos elementos

Vectors e arrays compartilham as mesmas funções para acessar seus elementos. Você pode usar as funções membro front e back para obter o primeiro e o último elementos do contêiner. Há também o at e o operador [] para acessar elementos específicos.

countdown[0];
// => 3
countdown.at(2);
// => 1
countdown[1] = 4;
// countdown now contains 3, 4 and 1
indie_rock.back() = "yeahs";
// indie_rock is now "yeah", "yeah", "yeahs"

Nota: Se você escolher uma posição que não está no intervalo do seu contêiner, o [] pode levar a um comportamento indefinido. A função at lançaria uma exceção, o que pode facilitar sua vida a longo prazo.

Modificadores de vector

Como um vector não tem tamanho fixo, é possível adicionar ou remover elementos. Duas funções comuns para isso são emplace_back e pop_back.

std::vector<std::string> witches {"Holly", "Alyssa", "Shannen"};
witches.pop_back();
// Shannen is no longer with the witches
witches.emplace_back("Rose");
// Rose has joined the team

Capacidade

Você pode verificar se os contêineres estão vazios com a função membro empty. Se quiser saber o número de elementos, pode usar size.

Editar via GitHub O link abre em uma nova janela ou aba

Aprenda Arrays e vetores

A prática está bloqueada

Desbloqueie mais 4 exercícios para praticar Arrays e vetores