Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Saya Boleh Menjumlahkan Unsur-unsur Vektor C dengan Cekap?
Menentukan Jumlah Unsur dalam Vektor C
Dalam C , mencari jumlah unsur dalam std::vector memerlukan gelung atau algoritma standard untuk mengulang dan mengumpul nilai. Pilihan kaedah bergantung pada versi C yang digunakan, dan setiap pendekatan menawarkan kelebihan tersendiri.
C 03
Klasik untuk gelung: Menggunakan gelung tradisional untuk lelaran melalui elemen dan menambah jumlah larian pembolehubah.
int sum_of_elems = 0; for (auto it = vector.begin(); it != vector.end(); ++it) sum_of_elems += *it;
algoritma terkumpul: Algoritma ini disediakan oleh
#include <numeric> int sum_of_elems = std::accumulate(vector.begin(), vector.end(), 0);
C 11 dan Lebih Tinggi
std::kumpul dengan auto-taip: Algoritma std::accumulate yang sama boleh digunakan dengan sedikit pengubahsuaian untuk menyimpulkan jenis pemulangan secara automatik berdasarkan jenis elemen vektor.
#include <numeric> decltype(vector)::value_type sum_of_elems = std::accumulate(vector.begin(), vector.end(), decltype(vector)::value_type(0));
std::for_each loop: Sintaks gelung ini menggunakan fungsi lambda pada setiap elemen vektor, mengemas kini pembolehubah jumlah di dalamnya skop.
std::for_each(vector.begin(), vector.end(), [&](int n) { sum_of_elems += n; });
Berasaskan julat untuk gelung: Gula sintaktik untuk gelung ini berulang ke atas elemen secara langsung tanpa objek lelaran yang berasingan.
for (auto& n : vector) sum_of_elems += n;
C 17 dan Kemudian
std::reduce algorithm: Algoritma ini menggabungkan elemen koleksi menjadi satu hasil tunggal menggunakan operator binari tertentu, dalam kes ini penambahan . Ia juga secara automatik menyimpulkan jenis hasil.
#include <numeric> auto result = std::reduce(v.begin(), v.end());
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjumlahkan Unsur-unsur Vektor C dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!