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

Вставка элементов одной последовательности в другую так, чтобы вторая последовательность осталась невозрастающей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нарисовать оси координат на изображении http://www.cyberforum.ru/cpp-beginners/thread680639.html
Помогите, как нарисовать оси координат на изображении, по щелчку мыши, начало координат (0,0) - точка на которую нажали левой кнопкой мыши.
C++ Заполнить массив случайно буквами как заполнить массив случайно буквами c++ . Можете дать простенький пример, я бы потом как-то разобрался. http://www.cyberforum.ru/cpp-beginners/thread680628.html
Найти элемент массива, наиболее близкий к среднему значению всех элементов массива C++
Найти элемент массива, наиболее близкий к среднему значению всех элементов массива. Найти среднее арифметические положительных и отрицательных элементов массива. И все это в динамическом массиве( ...
C++ Разветвляющиеся алгоритмы
Вычислить значение y в зависимости от выбранной функции f(x), аргумент которой определяется из поставленного условия. Возможные значе-ния функции f(x):2x, x2, х/3 (в оконном приложениии выбор...
C++ Сортировка http://www.cyberforum.ru/cpp-beginners/thread680598.html
Мне нужно написать программу, которая отсортирует мою структуру по третьему символу(по чару в данном примере). Сейчас у меня подставлена в текст программы простая быстрая сортировка#include...
C++ define не Здравствуйте. "Дефайню" "%f" для вывода: #define fss "%f"; . И потом делаю вывод вот такой вот: for(i=0;i<n;i++) fscanf(in,fss,&a->di);. И возникают ошибочки, типо IntelliSense: expected a ')' и... подробнее

Показать сообщение отдельно
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
25.10.2012, 22:36
1) вы вставляете в вектор (суть - контейнер с элементами) новый элемент. Поэтому параметрами вашей функции должны быть: а) сам вектор, б) элемент. У вас же 2 вектора. Должно быть так:
C++
1
vector<int> vctavka(vector<int> posledovatelnost, int b)
2) Вставляя новый элемент в контейнер нужно увеличить его размер. При обращении к элементам вектора через оператор[] этого не происходит. Перед вставкой нужно увеличить размер вектора на 1.

3)
C++
1
2
3
4
for(unsigned i=0;i<=posledovatelnost.size()-1;i++)
{
if((posledovatelnost[i]<=b)&&(posledovatelnost[i+1]>=b))
//...
Когда i дойдёт до значения size() - 1 в строке posledovatelnost[i+1] будет обращение к элементу с индексом == size() - выход за пределы вектора.
Лучше делать так:
C++
1
2
3
4
for(unsigned int i = 1; i < posledovatelnost.size(); ++i)
{
    if ((posledovatelnost[i - 1] <= b) && (posledovatelnost[i] >= b))
//...
Пока это.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru