С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Вставка одного вектора в другой через один без циклов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Масштабирование графика функции http://www.cyberforum.ru/cpp-beginners/thread1186152.html
Здравствуйте. Написал программу, строящую один из трех графиков функции в зависимости от выбора пользователя. Программа работает, графики строятся, но при этом занимают незначительную часть экрана,...
C++ Подскажите один момент в программе Код не мой, по этому не могу понять одну деталь,программа-калькулятор #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> // The token buffer. We never check for overflow!... http://www.cyberforum.ru/cpp-beginners/thread1186151.html
C++ Запись структуры и её чтение из файла
пробовал разными способами, ничего не работает, не записывает и не считывает //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop...
C++ Дан класс «Слово», написать дружественную функцию, читающую слово наоборот
Дан класс «слово». Написать дружественную функцию, читающую слово наоборот. Реализовать преобразования всех введённых слов.
C++ Error expected unqualified-id before '{' token c++ http://www.cyberforum.ru/cpp-beginners/thread1186114.html
Всем привет. У меня в программе в 11 строке компилятор пишет: error expected unqualified-id before '{' token c++. как это исправить? Буду очень благодарен за помощь#include<iostream>...
C++ Правильно ли указано хранение графа в массиве списков? Вобщем храни граф массиве -списков 1 2 3 2 3 4 1 3 2 1 2 4 5 В данном примере правильно ли я указал его хранение ? т .е. к примеру должно быть и 1 3 и 3 1 ?? тогда как мне... подробнее

Показать сообщение отдельно
Shiman_Gleb
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 51

Вставка одного вектора в другой через один без циклов - C++

23.05.2014, 19:22. Просмотров 392. Ответов 3
Метки (Все метки)

Поставили интересную задачу: вставить элементы одного вектора в другой без использования циклов. Рекурсия считается как цикл. Пользоваться можно for_each. Для вставки элементов нужно, как я понял, пользоваться функцией insert, но она вставляет только в одну позицию. Сказали, что нужно работать через итератор, но как сделать так, чтобы положение вставки менялось? Вот код, если что:
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
27
28
29
30
31
32
#include <iostream>
#include <vector>
#include <fstream>
#include <algorithm>
#include <iterator>
using namespace std;
vector <int> minuses;
vector <int> pluses;
int pos=1;
fstream f;
bool gtz(int num)
{
return num>=0;
}
bool ltz(int num)
{
return num<0;
}
int main()
{
 
f.open("input.txt");
vector<int> source((istream_iterator<int>(f)),(istream_iterator<int>())); //Копирую элементы из текстового файла
f.close();
sort(source.begin(),source.end(),greater <int> ()); //Сортирую
copy_if(source.begin(),source.end(),back_inserter(pluses),gtz); //В вектор pluses вставляю положительные
copy_if(source.begin(),source.end(),back_inserter(minuses),ltz); //В вектор minuses - отрицательные
pluses.insert(pluses.begin()+1,minuses.begin(),minuses.end()); //Заносит на 2-ую позицию pluses все элементы из minuses
for (int i=0; i<pluses.size(); i++) cout<<pluses[i]<<" "; //Выводит элементы вектора pluses, с вставленными элементы из minuses
f.close();
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.