Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menjumlahkan Elemen std::vector dengan Cekap dalam C ?

Bagaimanakah Saya Boleh Menjumlahkan Elemen std::vector dengan Cekap dalam C ?

Susan Sarandon
Lepaskan: 2024-12-01 01:52:10
asal
650 orang telah melayarinya

How Can I Efficiently Sum the Elements of a std::vector in C  ?

Teknik Penjumlahan untuk Elemen dalam std::vector

Mencari jumlah elemen dalam std::vector ialah operasi biasa. Berikut ialah pelbagai pendekatan:

C 03

  • Classic For Loop:

    int sum_of_elems = 0;
    for (std::vector<int>::iterator it = vector.begin(); it != vector.end(); ++it)
      sum_of_elems += *it;
    Salin selepas log masuk
  • Standard Algoritma:

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

C 11 dan Ke Atas

  • Jenis Automatik Penjejakan:

    #include <numeric>
    sum_of_elems = std::accumulate(vector.begin(), vector.end(),
                                  decltype(vector)::value_type(0));
    Salin selepas log masuk
  • std::for_each:

    std::for_each(vector.begin(), vector.end(), [&] (int n) {
      sum_of_elems += n;
    });
    Salin selepas log masuk
  • Julat -Berasaskan Untuk Gelung:

    for (auto& n : vector)
      sum_of_elems += n;
    Salin selepas log masuk

C 17 dan Ke Atas

  • std::kurangkan:

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

Fungsi ini menyimpulkan jenis hasil berdasarkan jenis elemen vektor, membenarkan pengendalian automatik jenis angka yang berbeza.

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan