Dostęp do elementów
Część sekcji Logika i przepływ programu ścieżki C++ w Coddy. Lekcja 12 z 56.
Skoro potrafisz już tworzyć wektory i dodawać do nich elementy, musisz wiedzieć, jak pobierać konkretne elementy z wektora. C++ udostępnia dwa główne sposoby uzyskiwania dostępu do pojedynczych elementów: operator nawiasów kwadratowych i metodę .at().
Operator nawiasów kwadratowych [] działa tak samo jak w przypadku zwykłych tablic. Określasz indeks elementu, do którego chcesz uzyskać dostęp:
std::vector<int> numbers = {10, 20, 30, 40};
int first = numbers[0]; // Pobiera 10
int third = numbers[2]; // Pobiera 30Metoda .at() zapewnia alternatywny sposób dostępu do elementów z ważną różnicą — sprawdza, czy indeks mieści się w granicach:
int first = numbers.at(0); // Pobiera 10
int third = numbers.at(2); // Pobiera 30Kluczowa różnica dotyczy bezpieczeństwa: jeśli spróbujesz uzyskać dostęp do nieistniejącego indeksu, [] może spowodować nieprzewidywalne zachowanie, podczas gdy .at() zgłosi wyjątek, aby poinformować Cię o błędzie. Do nauki obie metody sprawdzają się dobrze, ale .at() zapewnia dodatkową ochronę przed dostępem do nieprawidłowych pozycji w Twoim wektorze.
Wyzwanie
ŁatwyUtwórz program, który demonstruje dostęp do elementów wektora, pobierając określone elementy z wektora za pomocą operatora nawiasów kwadratowych oraz metody .at().
Podane zostaną następujące dane wejściowe:
- Liczba całkowita
noznaczająca liczbę elementów w wektorze - Następnie
nliczb całkowitych, które należy umieścić w wektorze - Liczba całkowita
index1oznaczająca pierwszy indeks, do którego należy uzyskać dostęp - Liczba całkowita
index2oznaczająca drugi indeks, do którego należy uzyskać dostęp
Twój program powinien:
- Utworzyć
std::vector<int>o nazwiedata - Użyć
push_back(), aby dodać do wektora każdą znliczb wejściowych - Uzyskać dostęp do elementu o indeksie
index1za pomocą operatora nawiasów kwadratowych[]i zapisać go w zmiennej o nazwievalue1 - Uzyskać dostęp do elementu o indeksie
index2za pomocą metody.at()i zapisać go w zmiennej o nazwievalue2 - Wyświetlić pobrane wartości i odpowiadające im indeksy
- Wyświetlić pierwszy i ostatni element wektora, korzystając z dostępu na podstawie indeksu
Użyj dokładnie następującego formatu wyjściowego:
Element at index [index1]: [value1]
Element at index [index2]: [value2]
First element: [first value]
Last element: [last value]Aby uzyskać dostęp do ostatniego elementu, użyj data.size() - 1 jako indeksu wraz z operatorem nawiasów kwadratowych.
Spróbuj swoich sił
#include <iostream>
#include <vector>
using namespace std;
int main() {
// Wczytaj dane wejściowe
int n;
cin >> n;
vector<int> data;
// Wczytaj n liczb całkowitych i dodaj je do wektora
for (int i = 0; i < n; i++) {
int num;
cin >> num;
data.push_back(num);
}
int index1, index2;
cin >> index1;
cin >> index2;
// TODO: Napisz swój kod poniżej
// Uzyskaj dostęp do elementów za pomocą operatora [] i metody .at()
// Zapisz odczytane wartości w value1 i value2
// Wyświetl wyniki
cout << "Element at index " << index1 << ": " << value1 << endl;
cout << "Element at index " << index2 << ": " << value2 << endl;
cout << "First element: " << /* uzyskaj dostęp do pierwszego elementu */ << endl;
cout << "Last element: " << /* uzyskaj dostęp do ostatniego elementu za pomocą data.size() - 1 */ << endl;
return 0;
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Wskaźniki i pamięć
Czym jest wskaźnik?Operator pobrania adresuOperator dereferencjiWskaźniki zeroweWskaźniki i tabliceDynamiczne zarządzanie pamięcią za pomocą „new”Zwalnianie pamięci za pomocą „delete”Podsumowanie — ćwiczenia ze wskaźnikami2Wektory (tablice dynamiczne)
Wprowadzenie do std::vectorTworzenie wektoraDodawanie elementówDostęp do elementówRozmiar wektoraIterowanie za pomocą pętli forPętla for oparta na zakresieUsuwanie elementówPodsumowanie — operacje na wektorach5Projekt: Narzędzie do zarządzania zapasami
Konfiguracja projektuDodawanie i aktualizowanie produktów3Projekt: narzędzie do listy zadań
Przegląd projektuDodawanie zadaniaPoćwicz samodzielnie: Kompilator C++ online