Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menjumlahkan Unsur-unsur Vektor C dengan Cekap?

Bagaimanakah Saya Boleh Menjumlahkan Unsur-unsur Vektor C dengan Cekap?

Linda Hamilton
Lepaskan: 2024-11-24 09:15:14
asal
985 orang telah melayarinya

How Can I Efficiently Sum the Elements of a C   Vector?

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;
    Salin selepas log masuk
  • algoritma terkumpul: Algoritma ini disediakan oleh pengepala mengumpul jumlah elemen yang dilalui melalui julat lelaran.

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

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));
    Salin selepas log masuk
  • 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; });
    Salin selepas log masuk
  • 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;
    Salin selepas log masuk

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());
    Salin selepas log masuk

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!

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