Rumah >pembangunan bahagian belakang >C++ >Apakah Cara Cekap untuk Menjumlahkan Elemen std::vector dalam C ?

Apakah Cara Cekap untuk Menjumlahkan Elemen std::vector dalam C ?

DDD
DDDasal
2024-12-03 16:45:13533semak imbas

What are the Efficient Ways to Sum the Elements of a std::vector in C  ?

Kaedah Cekap untuk Menjumlahkan Elemen dalam std::vector

Dalam senario di mana anda perlu memastikan jumlah kumulatif elemen dalam std ::vektor, beberapa pendekatan cekap wujud.

C 03 Penyelesaian:

  1. Klasik Untuk Gelung:

    int sum_of_elems = 0;
    for (std::vector<int>::iterator it = vector.begin(); it != vector.end(); ++it)
        sum_of_elems += *it;
  2. Standard Algoritma:

    #include <numeric>
    
    sum_of_elems = std::accumulate(vector.begin(), vector.end(), 0);

    Nota: Jenis hujah akhir menentukan nilai awal dan jenis hasil. Untuk input titik terapung, gunakan 0.0 dan bukannya 0.

C 11 dan Sambungan Atas:

  1. Jenis Vektor Automatik Pengendalian:

    #include <numeric>
    
    sum_of_elems = std::accumulate(vector.begin(), vector.end(),
                                   decltype(vector)::value_type(0));
  2. std::for_each Penggunaan:

    std::for_each(vector.begin(), vector.end(), [&](int n) {
        sum_of_elems += n;
    });
  3. Berasaskan Julat Untuk Gelung:

    for (auto& n : vector)
        sum_of_elems += n;

C 17 dan Penambahan Kemudian:

  1. std:: kurangkan dengan Jenis Keputusan Automatik:

    #include <numeric>
    
    auto result = std::reduce(v.begin(), v.end());

    Ini lebihan fungsi membolehkan pemprosesan selari untuk koleksi yang banyak.

Atas ialah kandungan terperinci Apakah Cara Cekap untuk Menjumlahkan Elemen std::vector dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn