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

Вставка в вектор элементов с использованием итератора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ книги по созданию графического интерфейса http://www.cyberforum.ru/cpp-beginners/thread177446.html
посоветуйте книги по созданию графического интерфейса на с++ , желательно в vs
C++ Найти все натуральные числа, не превосходящие заданного числа Решите пожалуйста задачку: Найти все натуральные числа,не превосходящие заданного числа N,десятичное представление которых строго возрастающая последовательность цифр. Заранее спасибо. Добавлено через 2 часа 2 минуты Выручите пожалуйста http://www.cyberforum.ru/cpp-beginners/thread177428.html
operator int() что за зверь? C++
Несколько раз видел в интернетах такую запись: operator int(){}; По контексту так и не понял, что это такое, да и в литературе не встречал, гугл тоже молчитО_о Может кто-нибудь скажет, что это за оператор ?
C++ Минимальные строки массива
Дан пример Q=min(2*MA*MB). Помогите пожалуйста в вектор Q внести минимальные строки матрицы: 2*MA*MB. Вот мои наработки: #include <iostream> #include <stdlib.h> #include <time.h> #include <conio.h> int N; int N1; int N2; int i; int j;
C++ Найти минимальный элемент матрицы http://www.cyberforum.ru/cpp-beginners/thread177387.html
Плиз, помогите, учить некогда, а надо в понедельник сдать рабочую программу, темы пропустил. Короче: есть квадратный массив, вводится программистом, в каждой строке надо найти минимальный елемент, потом из них самый минимальный, также и максимальный, а потом поменять местами строки с мин и макс, если номера строк совпадают, вывести номер строки. Заранее благодарен, оч. надо, я и не лох в С++ но...
C++ Степень Хочу реализовать 2 в 3 степени .. но не могу докумекать как это сделать .. Каким циклом сделать лучше ? 2*2*2=8 ВНИМАНИЕ НЕ КИДАЙТЕ ГОТОВОЕ РЕШЕНИЕ ХОЧУ САМ ДОПЕТРИТЬ (ДЛЯ СЕБЯ РЕШАЮ , СОБАЧИЙ ИНТЕРЕС) подробнее

Показать сообщение отдельно
Dimon 128500
0 / 0 / 0
Регистрация: 09.05.2010
Сообщений: 9

Вставка в вектор элементов с использованием итератора - C++

17.10.2010, 11:42. Просмотров 1597. Ответов 2
Метки (Все метки)

Задание:
Напишите программу, сохраняющую в векторе числа, полученные из стандартного
ввода (окончанием ввода является число 0). Удалите все элементы, которые
делятся на 2 (не используете стандартные алгоритмы STL), если последнее
число 1. Если последнее число 2, добавьте после каждого числа которое делится
на 3 три единицы.

У меня не получается выполнить добавление 3-х единиц (последнее предложение задачи).
Мне кажется ошибка здесь элементарная, но где???
Параллельно буду сам разбираться.

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//Директивы препроцессору о включении библиотек
#include <iostream> 
#include <vector> 
#include <conio.h>
  
using namespace std; 
 
// Основная программа
// arr - имя вектора
// i - число в векторе
 
int main() 
{ 
   // Вектор 
   vector<int> arr; 
   vector<int>::iterator Iter;
   
   //Описание типов переменных
   int i;
      
   //Вводим числа в векторе
   cout<<"Vvedite chisla v vector. Okonchanie vvoda - 0:"<<"\n";
    i=1;
    while (i!=0)
    {
        cin>>i;
        if (i!=0) arr.push_back(i);
    }
       
    // Печатаем неотсортированный вектор
    cout<<"Vector:"<<"\n";
    for (Iter = arr.begin(); Iter != arr.end(); Iter++) cout << *Iter <<" "; cout<<endl;
        
    // Удаляем элементы, которые делятся на 2, если последнее число в векторе 1 (работает)
    
    Iter--=arr.end();
    if (*Iter==1)
       {
       for (Iter=arr.begin(); Iter!=arr.end();)
           {
              if ((*Iter%2)==0) Iter = arr.erase(Iter);
              else Iter++;
           }  
       }
 
    // Вставляем три единицы после каждого числа, которое делится на 3 (не работает)
    if (*Iter==2)
      {
       for (Iter=arr.begin(); Iter!=arr.end();)
         {
            if ((*Iter%3)==0)
               {
            arr.insert(Iter,1,1);    ???????????
               }                            ???????????
            else Iter++;              ???????????
                 }
      }  
   // Вывод отредактированного вектора
     cout<<"Sorted Vector"<<"\n";
     for (Iter = arr.begin(); Iter != arr.end(); Iter++) cout << *Iter <<" ";   cout<<endl;
     getch();
     return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru