Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2014, 19:07   #1
MyLifeStyle
Пользователь
 
Регистрация: 29.04.2014
Сообщений: 25
Сообщение Вектора

Помогите с заданием.
В STL имеется алгоритм void reverse( Iterator _First, Iterator
_Last ), который можно применять к контейнерами с произвольным
доступом для изменения на обратный порядка следования его элеменов,
заключенных в интервале First … Last. Примените его для того, чтобы
реверсировать пять средних элементов вашего вектора.
MyLifeStyle вне форума Ответить с цитированием
Старый 08.05.2014, 19:28   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

Код:
#include <iostream>
#include <algorithm>
#include <vector>

int main()
{
	const size_t len = 5;
	std::vector<int> v = { 1,2,3,4,5,6,7,8,9 };

	if (v.size() >= len) {
		const size_t offset = (v.size() - len) / 2;
		std::reverse(v.begin() + offset, v.begin() + offset + len);
		for (auto i : v) std::cout << i << std::endl;
	} else {
		std::cerr << "not enough data" << std::endl;
	}
}
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 11.05.2014, 15:39   #3
MyLifeStyle
Пользователь
 
Регистрация: 29.04.2014
Сообщений: 25
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
Код:
#include <iostream>
#include <algorithm>
#include <vector>

int main()
{
	const size_t len = 5;
	std::vector<int> v = { 1,2,3,4,5,6,7,8,9 };

	if (v.size() >= len) {
		const size_t offset = (v.size() - len) / 2;
		std::reverse(v.begin() + offset, v.begin() + offset + len);
		for (auto i : v) std::cout << i << std::endl;
	} else {
		std::cerr << "not enough data" << std::endl;
	}
}
Код:
for (auto i : v)
Как это работает?
Выдаёт ошибку.
error C3531: 'i': a symbol whose type contains 'auto' must have an initializer .
IntelliSense: cannot deduce 'auto' type (initializer required).
MyLifeStyle вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны два вектора b=(b1,b2,...,b6),x=(x1,x2,...,x6) и матрица А(6х6).написать программу вычисления длины вектора Ax-b. infern_o Паскаль, Turbo Pascal, PascalABC.NET 10 21.03.2013 10:50
дано 3 вектора. определить максимальный чётный элемент каждого вектора и упорядочить по убыванию 3Doleg Паскаль, Turbo Pascal, PascalABC.NET 0 04.12.2012 01:45
Вектора, Вектора, вектора JohnSoap Общие вопросы C/C++ 0 25.05.2012 11:39
на вектора Рузанна Помощь студентам 3 13.10.2011 17:44
Вектора C++ DimaSoldier Помощь студентам 4 15.10.2010 00:08