Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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
Susan Sarandonasal
2024-10-25 00:23:02454semak imbas

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>

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>

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>

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!

Kenyataan:
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