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

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

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

C++ Векторы
C++ Векторы
Векторы C++
C++ Векторы!!!
Векторы! C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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     векторы С++
Ответ Создать тему
Опции темы

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