Почему это работает:
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums = {3, 7, 5};
std::cout << *min_element(nums.begin(), nums.end()) << "\n";
}
Но это не так:
#include <algorithm>
#include <iostream>
int main() {
int nums[] = {3, 7, 5};
std::cout << *min_element(nums, nums + 3) << "\n";
}
Я обнаружил, что если я изменю вызов на min_element
во втором примерепоэтому он включает в себя пространство имен, например std::min_element
, работает нормально.Я не понимаю, почему это не нужно в первом примере.vector
каким-то волшебным образом знает, где найти min_element
, и если да, то почему?