Aula 06 - Arrays e Strings 🧵
O que é um Array (Vetor)?
- Uma coleção de elementos do mesmo tipo.
- Armazenados de forma contígua (vizinhos) na memória.
Declaração e Acesso
int notas[5]; // Array de 5 inteiros
notas[0] = 10; // Primeiro elemento
- Lembre-se: C++ começa a contar no zero.
Inicialização
int lista[] = {10, 20, 30}; // Tamanho automático
int zeros[10] = {0}; // Tudo zerado
Perigos do Array Nativo
- C++ não verifica se você saiu do limite (Out of bounds).
arr[10] em um array de 5 pode causar travamentos!
Matrizes (Arrays Multidimensionais)
int matriz[3][3]; // 3 linhas e 3 colunas
matriz[0][0] = 1;
Percorrendo Arrays (Loop for)
for (int i = 0; i < 5; i++) {
cout << notas[i] << endl;
}
Range-based for (C++11)
- Forma moderna e segura:
for (int x : notas) {
cout << x << endl;
}
Arrays de Caracteres (C-Style Strings)
char nome[10] = "Aula";
- Terminadas pelo caractere nulo
\0.
A Classe std::string (C++ Standard)
- Muito mais poderosa e segura que o array de char.
#include <string>
- Concatenação:
s1 + s2
- Tamanho:
s.size() ou s.length()
- Acesso:
s[0]
Métodos Úteis
s.empty(): Verifica se está vazia.
s.clear(): Apaga tudo.
s.substr(): Extrai parte do texto.
s.find(): Procura texto.
Entrada de Strings (cin vs getline)
cin >> nome; (Para no espaço).
getline(cin, nome); (Lê a linha inteira).
Comparação de Strings
- Use
==, !=, <, >.
- A comparação é feita por ordem alfabética (lexicográfica).
Conversão (String para Número)
stoi(s): String para Int.
stod(s): String para Double.
to_string(num): Número para String.
std::vector (O Array Dinâmico)
- Array que cresce sozinho!
#include <vector>
Uso de vector
vector<int> v;
v.push_back(10); // Adiciona ao fim
v.pop_back(); // Remove do fim
v.reserve(100)
- Evita múltiplas realocações lentas.
Arrays como Argumentos
- Arrays são passados "como ponteiros" por padrão.
- Alterar o array dentro da função altera o original!
Algoritmos da STL (std::sort)
#include <algorithm>
sort(v.begin(), v.end());
Resumo da Aula
- Use
std::string em vez de char[].
- Use
std::vector em vez de array[] (sempre que possível).
- Cuidado com os índices!
Desafio: Palíndromo
- Como você verificaria se uma palavra lida é igual de trás para frente?
Fim da Aula 06
- Próxima aula: Ponteiros e Referências!