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

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

Susan Sarandon
Lepaskan: 2024-11-26 11:16:10
asal
647 orang telah melayarinya

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

Kaedah Alternatif untuk Menjumlahkan Elemen std::vector

Mencari jumlah semua elemen dalam std::vector ialah tugas biasa dengan pelbagai pendekatan yang cekap. Berikut adalah beberapa pilihan:

Teknik C 03 Klasik

Untuk Gelung:

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

Algoritma Standard:

#include <numeric>

sum_of_elems = std::accumulate(vector.begin(), vector.end(), 0);
Salin selepas log masuk

Nota: Jadilah sedar bahawa jenis hujah terakhir menentukan jenis hasil.

Pendekatan C Moden (C 11 )

Jenis Automatik Pengendalian:

#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

Berasaskan Julat Untuk Gelung:

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

C 17 Penambahbaikan

std::reduce:

#include <numeric>

auto result = std::reduce(v.begin(), v.end());
Salin selepas log masuk

std::reduce mengendalikan inferens jenis hasil dan menawarkan keupayaan pelaksanaan selari untuk koleksi besar.

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

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