Menu
Coddy logo textTech

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 30

Metoda .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 30

Kluczowa 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.

challenge icon

Wyzwanie

Łatwy

Utwó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 n oznaczająca liczbę elementów w wektorze
  • Następnie n liczb całkowitych, które należy umieścić w wektorze
  • Liczba całkowita index1 oznaczająca pierwszy indeks, do którego należy uzyskać dostęp
  • Liczba całkowita index2 oznaczająca drugi indeks, do którego należy uzyskać dostęp

Twój program powinien:

  1. Utworzyć std::vector<int> o nazwie data
  2. Użyć push_back(), aby dodać do wektora każdą z n liczb wejściowych
  3. Uzyskać dostęp do elementu o indeksie index1 za pomocą operatora nawiasów kwadratowych [] i zapisać go w zmiennej o nazwie value1
  4. Uzyskać dostęp do elementu o indeksie index2 za pomocą metody .at() i zapisać go w zmiennej o nazwie value2
  5. Wyświetlić pobrane wartości i odpowiadające im indeksy
  6. 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;
}
quiz iconSprawdź się

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

Poćwicz samodzielnie: Kompilator C++ online