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

Susan Sarandon
Lepaskan: 2024-11-26 11:16:10
asal
560 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!

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