C++ – Rufen Sie den Minimalwert, den Maximalwert und den entsprechenden Index in std::vector ab

1 Rufen Sie den Minimalwert, den Maximalwert und den entsprechenden Index in std::vector ab

1.1 Gewöhnliche Methode

Die übliche Methode besteht darin, std::vector zu durchlaufen, die Werte im Vektor einzeln zu vergleichen und den Minimalwert, den Maximalwert und den entsprechenden Index zu ermitteln. Der Beispielcode lautet wie folgt

#include <iostream>
#include <vector>
#include <algorithm>

int main()
{
    
    
	std::vector<float> example_vector = {
    
    1.3,0.5,3.2,4.5,6.5,8.9,6.2,10.7,2.3};

	// 找出最小值以及最小值索引
	float min_value = std::numeric_limits<float>::max();
	int min_value_index = -1;

	for (int i = 0; i < example_vector.size(); ++i)
	{
    
    
		if (example_vector[i] < min_value)
		{
    
    
			min_value = example_vector[i];
			min_value_index = i;
		}
	}

	std::cout << "min_value_index = " << min_value_index << ", min_value = " << min_value << std::endl;

	// 找出最大值以及最大值索引
	float max_value = std::numeric_limits<float>::min();
	int max_value_index = -1;

	for (int i = 0; i < example_vector.size(); ++i)
	{
    
    
		if (example_vector[i] > max_value)
		{
    
    
			max_value = example_vector[i];
			max_value_index = i;
		}
	}

	std::cout << "max_value_index = " << max_value_index << ", max_value = " << max_value << std::endl;

	return 0;
}

Programmausgabe:

min_value_index = 1, min_value = 0.5
max_value_index = 7, max_value = 10.7

1.2 Verwendung von Algorithmen

Wir können die Summenmethode verwenden algorithm, um die Maximal- und Minimalwerte zu erhalten, und dann den Index verwenden, um den entsprechenden Index des Iterators zu erhalten . Der Beispielcode lautet wie folgt:std::min_elementstd::max_elementstd::distancestd::vector

#include <iostream>
#include <vector>
#include <algorithm>

int main()
{
    
    
	std::vector<float> example_vector = {
    
    1.3,0.5,3.2,4.5,6.5,8.9,6.2,10.7,2.3};

	// 找出最小值
	std::vector<float>::iterator smallest = std::min_element(example_vector.begin(), example_vector.end());

	float min_value = *smallest;

	// 获取最小值索引
	int min_value_index = std::distance(example_vector.begin(), smallest);

	std::cout << "min_value_index = " << min_value_index <<", min_value = "<< min_value << std::endl;


	// 找出最大值
	std::vector<float>::iterator biggest = std::max_element(example_vector.begin(), example_vector.end());

	float max_value = *biggest;

	// 获取最大值索引
	int max_value_index = std::distance(example_vector.begin(), biggest);

	std::cout << "max_value_index = " << max_value_index << ", max_value = " << max_value << std::endl;

	return 0;
}

Programmausgabe:

min_value_index = 1, min_value = 0.5
max_value_index = 7, max_value = 10.7

Bei Interesse können Sie meine persönliche Website besuchen: https://www.stubbornhuang.com/

おすすめ

転載: blog.csdn.net/HW140701/article/details/130082001