eu entendi o map, mas n consegui absorver a ideia do vector, tipo pra q serve.
eu entendi o map, mas n consegui absorver a ideia do vector, tipo pra q serve.
Olá, bom dia! O vector tem a mesma função de um array comum, a diferença é que o vector não tem um tamanho fixo, então você pode adicionar e remover elementos sem ter que se preocupar com nenhum limite. Já o array precisa de um tamanho fixo sendo passado pra ele na hora de ser declarado. Existem vantagens e desvantagens: com o array você tem a garantia de que ele vai ocupar o mesmo espaço na memória, o problema é que se você criar um array de int, por exemplo, com 100 espaços e usar somente 10, ele vai ocupar o espaço de todos os 100 inteiros, mesmo usando só 10; já o vector tem um tamanho dinâmico, então ele vai ocupar somente o espaço necessário, o problema é que ele tem menos performance e pode acabar ocupando espaço de mais se ele crescer muito.
#include <iostream>
#include <array>
#include <vector>
int main() {
std::array<int, 5> arrayExemplo = {0, 1, 2, 3};
std::vector<int> vetor = { 0, 1, 2, 3 };
std::cout << arrayExemplo[4] << std::endl; // 0
std::cout << arrayExemplo.back() << std::endl; // 0
std::cout << arrayExemplo[10] << std::endl; // nao compila
std::cout << vetor.back() << std::endl; // 3
std::cout << vetor[10] << std::endl; // lanca um erro
return 0;
}
Como a posição 4 do arrayExemplo não teve o seu valor definido, ela é ocupada como zero. Se tentarmos acessar uma posição que não existe no arrayExemplo, o código nem compila, mas se fizermos a mesma coisa com o vetor, um erro vai acontecer durante a execução, porque no momento da compilação o compilador não sabe quantas posições o vetor vai ter, então ele deixa isso passar.