CodeBlanks Logo Icon CodeBlanks

std::tuple

std::tuple ile heterojen koleksiyon öğrenirsin.

std::tuple

std::tuple, farklı türden N öğeyi tek bir kapsayıcıda tutan şablondur. Sözdizimi: std::tuple<int, double, std::string> t{42, 3.14, "merhaba"};. Her öğe farklı türde olabilir; bu, std::pair'in genelleştirilmiş halidir.

Öğelere std::get<index>(t) ile erişilir. İndis derleme zamanında bilinmeli; çalışma zamanında değişmez. std::tuple_size ve std::tuple_element ile boyut ve tür bilgisi alınır. Tuple, fonksiyonların birden fazla değer döndürmesi için yaygındır.

std::get ile erişim

std::get, tuple'ın bir öğesine derleme zamanı indisiyle erişir. std::get<0>(t) ilk öğeyi, std::get<1>(t) ikincisini verir. Tür de verilebilir: std::get<int>(t) tuple'daki int öğesini döndürür.

İndis sıradısı olursa derleme hatası alınır. Aynı türden birden fazla öğe varsa türle erişim belirsiz olur; bu durumda indis kullanılır. Tuple, structured bindings ile de açılabilir: auto [a, b] = t; ifadesi her öğeyi ayrı değişkene bağlar.

Uygulama Tuple oluştur ve yazdır

std::tuple<int, double, std::string> t{42, 3.14, "merhaba"}; oluştur. std::get<0>(t) ile ilk öğeyi al ve std::cout ile yazdır. <tuple> başlığını eklemeyi unutma.

Başlangıç kodu

main.cpp
#include <iostream>
#include <tuple>
#include <string>

int main() {
    // Tuple oluştur ve ilk öğeyi yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>
#include <tuple>
#include <string>

int main() {
    std::tuple<int, double, std::string> t{42, 3.14, "merhaba"};
    std::cout << std::get<0>(t);
    return 0;
}

Beklenen çıktı

42

Soru ve cevaplar

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

1 std::get satırını tamamla

Soru
std::tuple<int, double> t{42, 3.14};
auto x = ____;
Cevap
std::tuple<int, double> t{42, 3.14};
auto x = std::get<0>(t);

Açıklama: std::get<0>(t) ilk öğeyi verir.

2 std::tuple ne saklar?

  • Yalnızca iki öğeyi
  • Aynı türden N öğeyi
  • Farklı türden N öğeyi Doğru cevap
  • Yalnızca işaretçileri

Açıklama: std::tuple farklı türden N öğeyi tutar.

3 Aracı amacına eşle

Kavram Anlamı
std::tuple<T1, T2> Heterojen kapsayıcı
std::get<0>(t) İlk öğeyi oku
std::tuple_size<t> Öğe sayısı
auto [a, b] = t Structured bindings

İleri seviye bölümündeki tüm dersler