std::ranges::minmax()
is a powerful function that can be used in various real-world applications where you need to find both the minimum and maximum elements efficiently. Here are some practical examples:
In data science and statistics, normalizing data to a specific range is common. You can use std::ranges::minmax()
to find the minimum and maximum values in a dataset, which helps in scaling the data.
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<int> data { 10, 20, 30, 40, 50 };
auto [min, max] = std::ranges::minmax(data);
std::cout << "Min: " << min
<< ", Max: " << max << "\n";
for (int& value : data) {
value = (value - min) * 100 / (max - min);
std::cout << value << " ";
}
}
Min: 10, Max: 50
0 25 50 75 100
In game development, you might need to determine the player with the highest and lowest scores. std::ranges::minmax()
can be used to quickly find these players.
#include <algorithm>
#include <iostream>
#include <vector>
struct Player {
std::string name;
int score;
};
int main() {
std::vector<Player> players {
{"Alice", 500},
{"Bob", 300},
{"Charlie", 800}
};
auto [minPlayer, maxPlayer] = std::ranges::minmax(
players, [](const Player& a, const Player& b) {
return a.score < b.score;
}
);
std::cout << "Lowest score: "
<< minPlayer.score
<< " (" << minPlayer.name << ")\n";
std::cout << "Highest score: "
<< maxPlayer.score
<< " (" << maxPlayer.name << ")\n";
}
Lowest score: 300 (Bob)
Highest score: 800 (Charlie)
In financial analysis, you might need to find the lowest and highest prices of a stock over a period. std::ranges::minmax()
helps in identifying these critical points efficiently.
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<double> stockPrices {
150.5, 200.0, 180.3, 220.1, 190.4 };
auto [minPrice, maxPrice] =
std::ranges::minmax(stockPrices);
std::cout << "Lowest price: $" << minPrice
<< "\nHighest price: $" << maxPrice;
}
Lowest price: $150.5
Highest price: $220.1
std::ranges::minmax()
is versatile and can be applied in various domains such as data science, game development, and financial analysis.
It efficiently finds both the minimum and maximum elements in a range, which can be used for normalizing data, analyzing player scores, and identifying critical financial metrics.
Answers to questions are automatically generated and may not have been reviewed.
An introduction to the seven minimum and maximum algorithms in the C++ standard library: clamp()
, min()
, min_element()
, max()
, max_element()
, minmax()
, and minmax_element()
.