CodeBlanks Logo Icon CodeBlanks

size ve at

.size() ve .at() ile vector yönetimini öğrenirsin.

size() ve at()

İki temel vektör yöntemi: size() eleman sayısını döndürür, at(i) i dizinindeki elemana erişir. nums.size() kaç eleman olduğunu, nums.at(0) ise ilk elemanı verir.

at ile [] arasındaki önemli fark: at sınırları denetler. Geçersiz dizin verirsen std::out_of_range hatası fırlatır; [] ise denetim yapmaz, geçersiz dizin tanımsız davranıştır. Güvenli erişim için at tercih edilir.

Sınır denetimi neden önemli?

Üç elemanlı bir vektörde nums.at(3) çağrısı hata fırlatır çünkü geçerli dizinler 0, 1, 2'dir. Bu, programın çökmeden önce anlamlı bir hata vermesini sağlar.

Aynı erişimi nums[3] ile yapsaydın denetim olmazdı; program belleğin rastgele bir yerine bakar, sonradan hatırlandığında izi sürülmesi zor hatalara yol açardı. Bu yüzden kullanıcıdan gelen dizinle çalışırken at daha güvenlidir.

Uygulama at() ile üç elemanı yazdır

std::vector<int> nums = {10, 20, 30}; tanımla. at(0), at(1) ve at(2) değerlerini std::cout ile aralarına boşluk koyarak tek satırda yazdır.

Başlangıç kodu

main.cpp
#include <iostream>
#include <vector>

int main() {
    std::vector<int> nums = {10, 20, 30};
    // at() ile üç elemanı yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>
#include <vector>

int main() {
    std::vector<int> nums = {10, 20, 30};
    std::cout << nums.at(0) << " " << nums.at(1) << " " << nums.at(2) << std::endl;
    return 0;
}

Beklenen çıktı

10 20 30

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 size() ve at() eşle

Kavram Anlamı
size() Eleman sayısı
at(0) İlk eleman
at(size-1) Son eleman
out_of_range Sınır dışı hatası

2 3 elemanlı vektörde nums.at(5) çağrısı ne yapar?

main.cpp
std::vector<int> nums = {10, 20, 30};
nums.at(5);
  • Tanımsız davranış
  • std::out_of_range fırlatır Doğru cevap
  • 5 döndürür
  • 30 döndürür

Açıklama: at sınırları denetler, geçersiz dizinde std::out_of_range fırlatır.

3 at() ile ikinci elemana eriş

Soru
std::cout << nums.____(1) << std::endl;
Cevap
std::cout << nums.at(1) << std::endl;

Açıklama: at(1) ikinci elemana erişir.

Başlangıç bölümündeki tüm dersler