Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya cekap mencari nilai maksimum dan minimum dalam vektor dalam C?

Bagaimanakah saya cekap mencari nilai maksimum dan minimum dalam vektor dalam C?

Susan Sarandon
Lepaskan: 2024-10-25 00:23:02
asal
481 orang telah melayarinya

How do I efficiently find the maximum and minimum values within a vector in C  ?

Mencari Nilai Maksimum atau Minimum dalam Vektor dalam C

Dalam C , mendapatkan nilai maksimum atau minimum dalam vektor ialah tugas yang mudah . Dengan menggunakan fungsi STL (Perpustakaan Templat Standard), kami boleh mencapainya dengan cekap tanpa melelakan keseluruhan bekas.

Menggunakan std::max_element() dan std::min_element()

Pustaka standard menyediakan fungsi std::max_element() dan std::min_element() untuk mencari elemen maksimum dan minimum dalam jujukan nilai, masing-masing. Fungsi ini mengambil sepasang iterator sebagai hujah, menandakan julat di mana carian harus dilakukan. Nilai pulangan ialah iterator yang menunjuk kepada elemen dengan nilai maksimum/minimum.

Sintaks:

<code class="cpp">std::max_element(iterator_begin, iterator_end);
std::min_element(iterator_begin, iterator_end);</code>
Salin selepas log masuk

Contoh:

<code class="cpp">#include <vector>
#include <algorithm>

std::vector<int> v = {1, 3, 5, 7, 9};

int max_num = *std::max_element(v.begin(), v.end());
int min_num = *std::min_element(v.begin(), v.end());

std::cout << "Maximum value: " << max_num << std::endl;
std::cout << "Minimum value: " << min_num << std::endl;</code>
Salin selepas log masuk

Menggunakan Tatasusunan vs Vektor

Vektor dan tatasusunan ialah kedua-dua bekas dalam C . Walau bagaimanapun, vektor adalah dinamik manakala tatasusunan adalah statik. Oleh itu, pendekatan untuk mendapatkan nilai maksimum/minimum adalah sedikit berbeza.

Untuk tatasusunan, anda boleh terus mengakses elemen dan menentukan nilai maksimum/minimum dengan mengulangi tatasusunan.

Contoh:

<code class="cpp">int arr[] = {1, 3, 5, 7, 9};
int size = sizeof(arr) / sizeof(arr[0]);

int max_num = arr[0];
int min_num = arr[0];

for (int i = 1; i < size; i++) {
    max_num = std::max(max_num, arr[i]);
    min_num = std::min(min_num, arr[i]);
}

std::cout << "Maximum value: " << max_num << std::endl;
std::cout << "Minimum value: " << min_num << std::endl;</code>
Salin selepas log masuk

Sebagai kesimpulan, menggunakan std::max_element() dan std::min_element() ialah cara yang mudah untuk mencari nilai maksimum dan minimum dalam vektor. Untuk tatasusunan, anda boleh mengulangi elemen untuk mencapai hasil yang sama.

Atas ialah kandungan terperinci Bagaimanakah saya cekap mencari nilai maksimum dan minimum dalam vektor 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