Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Alguém poderia me explicar o vector?

eu entendi o map, mas n consegui absorver a ideia do vector, tipo pra q serve.

1 resposta
solução!

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.