Большинство книг Jon Bentley (например, Жемчуг Программирования ) касается такого материала действительно прагматическим способом. Этот разговор данный им включает один такой анализ quicksort.
, В то время как не совсем релевантный для вопроса, Knuth придумал интересная идея : обучение Нотации "большого О" в классах исчисления средней школы, хотя я нахожу эту идею довольно эксцентриковой.
Вы не должны загружать файлы. Вы можете использовать STL, таким образом, это должно быть на Вашем компьютере где-нибудь. Это приводит себя к другому другому вопросу, который уже задают на Stackoverflow: , Где заголовки библиотеки стандарта C++ . Мой ответ hacky на этот вопрос ниже.
расположение файла на самом деле зависимо от компилятора.
Обычно, когда Вы будете пользоваться стандартной библиотекой неправильно, она будет давать Вам строку и адрес файла неразрешенной проблемы в библиотеке. Таким образом, это предоставляет себя решению для взлома: Сознательно совершите ошибку.
#include <vector>
int main ()
{
std::vector<0,0,0>;
}
Для меня, на g ++/gcc это дает:
demo1.cpp: В функции вЂint основной () ’: demo1.cpp:5:19: ошибка: неправильное количество аргументов шаблона (3, должен быть по крайней мере 1)
станд.:: vector< 0,0,0>; ^ В файле, включенном от/usr/include/c ++/7/vector:64:0, от demo1.cpp:1:/usr/include/c ++/7/bits/stl_vector.h:216:11:примечание: предусмотренный вЂtemplate станд. класса:: вектор класса vector’: защищенный _Vector_base< _Tp, _Alloc>
Поэтому теперь я знаю, что для g++/gcc
, #include <stuff>
совпадает с #include "/usr/include/c++/7/stuff"
Однако, конечно, это решение для взлома, и если я делаю это с лязгом, я добираюсь:
demo1.cpp:5:14: ошибка: аргумент шаблона для шаблонного параметра типа должен быть станд. типа:: vector< 0,0,0>; ^/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c ++/8/bits/stl_vector.h:338:21:примечание: шаблонный параметр объявляется здесь шаблоном> сгенерированная ошибка ^ 1.
..., который менее полезен.