0Pricing
C++ Academy · Ders

Değiştiren Algoritmalar: transform, copy_if, replace

Standart algoritmalarla öğeleri dönüştürün, süzün ve değiştirin

Değiştiren Algoritmalar: transform, copy_if, replace, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C++ Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C++ Academy kursu toplamda 4 dersten oluşur.

Değiştirici Algoritmalar

Bu algoritmalar bir çıktı aralığına, yerinde veya bir hedef yineleyiciye yazar.

std::copy

Bir aralığı başka bir aralığa kopyalar. Çıktı aralığı yeterince büyük olmalı veya bir ekleyici sağlamalısınız.

#include <algorithm>
#include <iterator>
std::vector<int> src = {1, 2, 3};
std::vector<int> dst;
std::copy(src.begin(), src.end(), std::back_inserter(dst));

std::copy_if

Bir koşulla eşleşen öğeleri kopyalar.

std::vector<int> evens;
std::copy_if(src.begin(), src.end(),
    std::back_inserter(evens),
    [](int x) { return x % 2 == 0; });

std::transform

Her öğeye bir işlev uygular ve sonucu yazar. Diğer dillerdeki eşleme işlemi gibidir.

std::vector<int> v = {1, 2, 3};
std::vector<int> sq;
std::transform(v.begin(), v.end(),
    std::back_inserter(sq),
    [](int x) { return x * x; });
// sq is {1, 4, 9}

İki Aralıklı std::transform

İki girdi aralığını ikili bir işlevle birleştirir.

std::vector<int> a = {1, 2, 3};
std::vector<int> b = {10, 20, 30};
std::vector<int> sum;
std::transform(a.begin(), a.end(), b.begin(),
    std::back_inserter(sum), std::plus<int>{});
// sum is {11, 22, 33}

std::replace ve std::replace_if

Bir değere eşit olan (veya bir koşulla eşleşen) öğeleri yerinde değiştirir.

std::vector<int> v = {1, 2, 3, 2};
std::replace(v.begin(), v.end(), 2, 99);
// v is {1, 99, 3, 99}

std::fill

Bir aralıktaki her öğeyi bir değere ayarlar.

std::vector<int> v(5);
std::fill(v.begin(), v.end(), 42);
// v is {42, 42, 42, 42, 42}

std::generate

Her öğeyi bir işlev çağrısının sonucuna ayarlar. Dizi üretimi için kullanışlıdır.

std::vector<int> v(5);
int n = 0;
std::generate(v.begin(), v.end(), [&]() { return n++; });
// v is {0, 1, 2, 3, 4}

std::iota

<numeric> başlığından — bir aralığı ardışık olarak artan değerlerle doldurur.

#include <numeric>
std::vector<int> v(5);
std::iota(v.begin(), v.end(), 10);
// v is {10, 11, 12, 13, 14}

std::reverse

Bir aralığın öğelerini yerinde tersine çevirir.

std::vector<int> v = {1, 2, 3, 4};
std::reverse(v.begin(), v.end());
// v is {4, 3, 2, 1}

std::rotate

Öğeleri, middle konumundaki öğe yeni ilk öğe olacak şekilde döndürür. İlk öğe, döndürülen bölgenin sonuna gider.

std::remove ile Silme-Kaldırma

remove, istenmeyen öğeleri sona kaydırır ve yeni mantıksal sona bir yineleyici döndürür. Gerçekten küçültmek için erase ile birlikte kullanın.

v.erase(
    std::remove(v.begin(), v.end(), 0),
    v.end()
);

Hızlı Kontrol

"Her öğeye bir işlev uygulayıp yeni bir kapsayıcı oluşturma" amacına en uygun algoritma hangisidir?

Özet

Değiştirme algoritmaları sonuç yazar: copy, copy_if, transform, replace, fill, generate, iota, reverse, rotate ve silme-kaldırma deyimi.

Sıkça Sorulan Sorular

“Değiştiren Algoritmalar: transform, copy_if, replace” dersi ücretsiz mi?

Evet — “Değiştiren Algoritmalar: transform, copy_if, replace” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C++ Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C++ Academy kursu toplamda 4 dersten oluşur.

“Değiştiren Algoritmalar: transform, copy_if, replace” dersinde ne öğreneceğim?

Standart algoritmalarla öğeleri dönüştürün, süzün ve değiştirin C++ Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C++ Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C++ Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Değiştiren Algoritmalar: transform, copy_if, replace” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C++ Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C++ Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Değiştirmeyen Algoritmalar: find, count, all_of
  2. Değiştiren Algoritmalar: transform, copy_if, replace
  3. Sıralama ve Bölümleme: sort, stable_partition
  4. Sayısal Algoritmalar: accumulate, reduce, transform_reduce
← C++ Academy Sayfasına Dön