Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
programmer4
0 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 35
#1

векторы С++ - C++

29.11.2011, 20:26. Просмотров 1560. Ответов 4
Метки нет (Все метки)

С текстового файла считать действительные числа в вектор. С вектора удалить все нечетные положительные числа. Образованные элементы перенести в список в обратном порядке. Вывести на экран образован список.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2011, 20:26     векторы С++
Посмотрите здесь:

C++ Векторы
векторы C++
C++ Векторы
Векторы C++
C++ Векторы!!!
Векторы! C++
Векторы C++
Векторы в с++ C++
C++ Векторы
C++ Векторы
C++ Векторы
C++ Векторы

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
29.11.2011, 20:54     векторы С++ #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <vector>
#include <algorithm>
#include <list>
#include <fstream>
#include <iterator>
 
int main()
{
   std::ifstream ifs("file.txt");
   std::vector<double> vec((std::istream_iterator<double>(ifs)), std::istream_iterator<double>());
   vec.erase(std::remove_if(vec.begin(), vec.end(), [](const double v) {return (int(v)%2) && v > 0; }), vec.end());
   std::list<double> lst(vec.rbegin(), vec.rend());
   std::copy(lst.begin(), lst.end(), std::ostream_iterator<double>(std::cout, "\n"));
   return 0;
}
Можно сделать короче не юзать erase а использовать сразу copy_if.
programmer4
0 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 35
29.11.2011, 21:01  [ТС]     векторы С++ #3
не работает ((((
Bers
Заблокирован
29.11.2011, 21:04     векторы С++ #4
ну потому что ещё не все компиляторы поддерживают всякие лямбды
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
29.11.2011, 21:06     векторы С++ #5
programmer4, Все работает. Просто здесь используется новый стандарт.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <vector>
#include <algorithm>
#include <list>
#include <fstream>
#include <iterator>
#include <functional>
 
struct some : std::unary_function<double, bool>
{
public:
   result_type operator () (const argument_type& arg)
   {
       return arg > 0 && static_cast<int>(arg) % 2;
   }
};
 
int main()
{
   std::ifstream ifs("file.txt");
   std::vector<double> vec((std::istream_iterator<double>(ifs)), std::istream_iterator<double>());
   vec.erase(std::remove_if(vec.begin(), vec.end(), some()), vec.end());
   std::list<double> lst(vec.rbegin(), vec.rend());
   std::copy(lst.begin(), lst.end(), std::ostream_iterator<double>(std::cout, "\n"));
   return 0;
}
Yandex
Объявления
29.11.2011, 21:06     векторы С++
Ответ Создать тему
Опции темы

Текущее время: 09:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru