Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 10
1

copy, iterator, vector

14.02.2014, 17:44. Показов 1629. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <istream>
#include <vector>
#include <algorithm>
#include <iterator>
 
 
int main( ) {
    
    std::vector <int> ivec;
    
    
    std::copy(std::istream_iterator<int, char> (std::cin), std::istream_iterator<int, char> () ,  back_inserter(ivec));
    
    std::copy(ivec.begin(), ivec.end(), std::ostream_iterator<int, char>( std::cout, " "));
    return 0;
}
Как сделать , что-бы в написанной программе вводимый поток чисел останавливался с помощью кнопки "Enter",
а не "Cntrl + d" ?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2014, 17:44
Ответы с готовыми решениями:

vector<T> template vector<T>::iterator
Здраствуйте! При написании вектора столкнулся с проблемой такого рода: вот код вектора template...

Std::vector<std::pair<std::vector<int>::iterator, std::vector<int>::iterator>
Вопрос по вектору. Допустим есть вектор, std::vector&lt;int&gt; vec; на каком - то этапе заполнения я...

vector<pointer>::iterator
В общем, есть некий родительский объект, в котором хранится динамический массив указателей на...

Erase vector; iterator
for (int k = 0; k &lt; passengers.size(); k++) { int *dst_floor_end = NULL; int ucf =...

6
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
14.02.2014, 17:51 2
Цитата Сообщение от mercury1987 Посмотреть сообщение
ак сделать , что-бы в написанной программе вводимый поток чисел останавливался с помощью кнопки "Enter",
Никак. Надо переписывать. Чтобы например принимать строку, а поток разбивать ее на части.
P.S. второй аргумент шаблона по умолчанию и так char. Т.е. можно не указывать.
0
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 10
14.02.2014, 17:58  [ТС] 3
а как это сделать? хотя-бы примерно.
0
Заблокирован
14.02.2014, 18:01 4
mercury1987, можно просто считать строку и ёё уже разбить на числа при помощи istringstream. Если подходит, могу показать как.
0
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 10
14.02.2014, 18:04  [ТС] 5
Цитата Сообщение от raccoonlove Посмотреть сообщение
mercury1987, можно просто считать строку и ёё уже разбить на числа при помощи istringstream. Если подходит, могу показать как.
спасибо, но мне нужно именно с использованием алгоритма "copy()" и "istream_iterator"
0
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
14.02.2014, 18:34 6
Лучший ответ Сообщение было отмечено mercury1987 как решение

Решение

mercury1987,
C++
1
2
3
4
5
6
7
8
9
#include <sstream>
#include <string>
 
// ...
 
std::string line;
std::getline(std::cin, line);
std::istringstream iss(line);
std::copy(std::istream_iterator<int>(iss), std::istream_iterator<int>(), std::back_inserter(ivec));
1
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
14.02.2014, 22:35 7
Цитата Сообщение от Tulosba Посмотреть сообщение
Никак.
Ну зачем так сразу?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class NewlineAsPunct : public std::ctype<char>
{
    static const mask* GetTable()
    {
        static mask newTable[table_size];
        const mask* oldTable = classic_table();
        std::copy(oldTable, oldTable + table_size, newTable);
        newTable['\n'] = punct;
        return newTable;
    }
public:
    NewlineAsPunct() : std::ctype<char>(GetTable()) {}
};
...
std::cin.imbue(std::locale(std::cin.getloc(), new NewlineAsPunct));
0
14.02.2014, 22:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.02.2014, 22:35
Помогаю со студенческими работами здесь

STL vector iterator
есть список в списке... ..точнее: vector &lt;Class1*&gt; mapClass1; а уже в Class1 определён вектор...

Vector iterator not incrementable
Здравствуйте. Подскажите, из-за чего не работает код? При запуске программы появляется ошибка:...

vector iterator not decrementable
Здраствуйте! Хочу вывести вектор задом-наперед, все нормально, но после того как оно выводит вектор...

Cant dereference out of range vector iterator
Дано две строки одинаковой длины. Строки состоят из символов 0 и 1. Над второй строкой можно...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru