Я не могу говорить за других, но я думаю, что небрежное использование аббревиатуры «СТЛ» интеллектуально нечестно. Если вы хотите обратиться к «стандартной библиотеке C++», скажите так. Аббревиатура может означать много разных вещей, включая стандартную библиотеку, оригинальную реализацию STL (которая старше десятилетия) или любой из ее портов. Для получения дополнительной информации см. What's this STL vs. “C++ Standard Library” fight all about?
С точки зрения изучения C++, многие студенты, по-видимому, пренебрегают одним из самых важных (и очень дорогостоящих) ресурсов, которые у них есть, что является их школой. Если у вас есть проблема, всегда спросите своего учителя. Спросите помощника учителя. Спросите других студентов. Найдите наставника на кампусе. Хит библиотеку. Если в вашей библиотеке нет нужной вам книги, попросите ее доставить ее в ваш университетский городок. Но я дам вам преимущество от сомнений и предположим, что вы уже это сделали.
Если вы хотите получить ссылку, попробуйте cppreference. Для новичков это не очень легко разобрать, хотя это значительно упрощает язык из стандарта. Если вы хотите получить учебник, попробуйте любой из миллионов книг (преувеличение) Bjarne Stroustrup. The C++ Programming Language (4th Edition) - хороший выбор. На веб-сайте ISO C++ также перечислены популярные компиляторы, онлайн-компиляторы и небольшой список книг персонажей C++ (Herb Sutter, Scott Meyers и т. Д.). Также есть C++-faq от Marshall Cline (различные авторы).
Люди также, похоже, забывают, что StackOverflow - это ресурс. Люди потратили сотни часов, внося свой вклад в c++-faq, и даже просто сортировка вопросов С ++ на votes дает много высококачественного контента для прохождения. Если не хватает, соберите страницу user по репутации и найдите пользователей, которые являются экспертами на C++, и прочитайте их вопросы и ответы. Вы не можете сказать, что после выполнения всего этого вы не смогли найти ответ на свою проблему.
Ничего из того, что я написал до сих пор, не является ответом на вопрос, поэтому давайте рассмотрим вашу проблему.
Ваш текущий код показывает:
int main()
int i = 0;
{
int array[];
vector<int> integers (array, array+ array.size)
for (i=0; i<array.size, i++)
cin>>a[i];
vector<int>::const_reverse_iterator reverse iterator;
Первый выпуск ваш K & декларация R стиль. int i = 0
необходимо внутри основной. Затем у вас есть массив неизвестных границ. В этом контексте это запрещено. Просто начните с std::vector
, массив здесь не нужен.И, наконец, вам не нужен reverse_iterator
, и я покажу вам, почему через секунду.
#include <iostream>
#include <vector>
int main() {
std::vector<int> v;
int current_num;
while (std::cin >> current_num)
v.push_back(current_num);
}
Эта идиома, std::cin >> current_num
, полезно, потому что это краткое и цикл будет выходить корректно (то есть, плохой пользовательский ввод или EOF). Пожалуйста, см. Why is iostream::eof inside a loop condition considered wrong? для более подробного объяснения.
Теперь вы хотите напечатать целые числа в обратном порядке. У вас есть три способа сделать это:
std::sort(v.rbegin(), v.rend());
std::reverse(v.begin(), v.end()); // #include <algorithm>
Затем пропустите и распечатайте каждый элемент. Или используйте цикл, который выполняет итерацию через вектор назад при печати каждого элемента. Два вышеуказанных метода практически эквивалентны, но я включил rbegin()
, потому что он возвращает обратный итератор, демонстрируя, что вам не нужно иметь дело с голым итератором.
Я не буду беспокоиться о том, чтобы предоставить более подробные объяснения, потому что утром 3:30, но, надеюсь, это поможет вам начать. Удачи.
вы можете попробовать std :: vector, std :: list и т. Д. –
Вы должны получить хорошую ссылку для этих библиотек, например: http://en.cppreference.com/w/ Использование «STL «не сложно. –
Поздравляем вашего учителя за то, что они учат своих студентов использовать стандартную библиотеку. – Shoe