<iostream>
#include <vector>
using namespace std;
int main() {
vector <int> v{1,2,3,33,1};
cout << count(v.begin(), v.end(), 1);
return 0;
}
и выводит 2? Мол, я же не подключил #include <algorithm>, в которой лежит алгоритм count
компилятор позволяет лишнего https://godbolt.org/z/646ErcYqh
ну значит в данной реализации этот хедер включился из <vector>
Повезло
Спасибо! А почему так происходит? Я подозревал, что дело в компиляторе, поэтому проверил в двух разных, прежде чем отправлять сюда. еще вопрос: Находил, что функция find используется для неотсортированного вектора, в то время как метод find используется для множества / словаря. Правильно ли я понимаю, что метод для множества / словаря подключается из #include <set> / #include <map>, в то время как функция find подключается из #include <algorithm> ?
Не уверен, но скорее всего нет ограничений для реализации стд на то, какие могут включать другие. мсвц наверное в хедере с вектором просто использует алгоритмы, вот и инклюднул find у сета и мапы свои, не надо для них ничего подключать
Это скорее компиляторо зависимая вещь, и от реализации к реализации может быть по разному, стандарт вроде не фиксирует какие includ'ы должны содержать stl'евские хедеры
что есть "хедеры"?)))
include <vector> и прочее, ну и любые .h файлы
Добро пожаловать в MSVC
Microsoft Visual C++?)
Обсуждают сегодня