Различные контейнеры STL как вектор, стек, набор, очередь, и т.д. поддерживают различные методы доступа для них.
Если Вы кодируете, например, в Блокноте ++ или энергия, необходимо непрерывно обращаться к документации для наблюдения то, что все методы доступны, по крайней мере я имею к.
Есть ли некоторый хороший способ помнить который контейнерные поддержки который методы??
Названия методов не отличаются друг от друга. Это помогает запомнить, какие контейнеры имеют какие методы, чтобы понять значение имени. push_back
, например, бессмысленен по отношению к наборам. insert
не имеет никакого смысла, когда речь идет о стеках (конечно, у стека нет ни передней, ни оборотной стороны, поэтому он не поддерживает push_back
, только нажмите
). Для вектора оба имеют четко определенное значение, поэтому вектор поддерживает как insert
, так и push_back
.
Если ваша память продолжает подводить вас, попробуйте сохранить ссылку на них всех в другом окне. Если у вас более одного монитора, действительно удобно иметь подобные вещи на втором мониторе (для любой документации).
В качестве альтернативы я настоятельно рекомендую настоящую IDE для кодирования с intellisense! Notepad ++, вероятно, слишком прост, чтобы работать на C ++ продуктивно.
Используйте что-то со встроенным intellisense, например Visual Studio в Windows или KDevelop в Linux.
Существуют также надстройки для vim и emacs для intellisense.
Признавая, что он не поддерживает запоминание, вы можете запустить какой-то intellisense на vim. Преимущество состоит в том, что вы можете создавать теги как из собственных, так и из внешних файлов исходного кода. Как бы то ни было, STL требует особого обращения, описанного здесь.
Загрузите эти vim-скрипты OmniCppComplete и SuperTab .
Установите OmniCppComplete:
Установите SuperTab:
Установите ctags через ваш любимый менеджер пакетов. Загрузите и распакуйте этот файл и запустите на нем ctags.
$ ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ tags_stl cpp_src
Будет создан файл ctags с именем 'tags_stl', содержащий STL-теги. Скопируйте его куда угодно. Добавьте следующие строки, которых еще нет в вашем ~ / .vimrc:
set tags+=~/path/to/your/tags_stl
filetype on
filetype plugin on
let OmniCpp_GlobalScopeSearch=1
let OmniCpp_NamespaceSearch=2
let OmniCpp_MayCompleteDot=1
let OmniCpp_MayCompleteArrow=1
let OmniCpp_MayCompleteScope=1
let OmniCpp_DisplayMode=1
let OmniCpp_DefaultNamespaces=["std"]
Это завершает операторы STL на 'tab', '.', '::' и '->', даже если 'using namespace std;'. Не делайте этого, если ненавидите пурпурный.
Изучите, что это такое, и общие методы, и тогда будет довольно легко вспомнить, какие из них применимы. STL не совсем согласован, но довольно хорош.
Даже если вы помните все «методы», это только часть истории. Чтобы эффективно использовать STL, вам также необходимо знать алгоритмы. Я бы посоветовал прочитать о STL в хорошей книге (Страуструп, Йосуттис, ...), чтобы просто вспомнить, что доступно, а затем вернуться к книгам или открыть справочный сайт, когда вам нужен точный синтаксис.
Возможно, это не совсем то, что вы ищете, но Скотт Мейерс (известный «Эффективный C ++») составил следующий список алгоритмов STL на основе о книге Николая Джозаттиса «Стандартная библиотека C ++»:
Используйте их достаточно, чтобы запомнить методы каждого.