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

Удалить из массива повторяющиеся элементы, оставив только их первые вхождения (класс-контейнер вектор) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужно описать структуру с именем МОТЕ и т.д. http://www.cyberforum.ru/cpp-beginners/thread292963.html
Описать структуру с именем МОТЕ, содержащую следующие поля: - фамилия, имя; - номер телефона; - дата рождения (массив из трех чисел). Написать программу, выполняющую следующие действия: - ввод с...
C++ Создание (вернее, внедрение) манипулятора Здравствуйте! Помогите пожалуйста! Лаба горит! Помогите создать манипулятор консольного ввода\вывода (insetup\outsetup). Внедрить его надо в этот код #include <iostream> #include <conio.h>... http://www.cyberforum.ru/cpp-beginners/thread292939.html
значение максимальной длины слова C++
Задан исходный текст на русском языке. длинна текста - не более NL строк, длина строки - не более NS символов, длина слова не более NW символов. исходный текст должен заканчиваться точкой('!','?')....
Посчитать количество слов в строке C++
Здравствуйте! Дайте пожалуйста пример функции которая считает количество слов с строке с помощью функции strtok. Number_Word (char str) return number_words; int _tmain(int argc, _TCHAR*...
C++ сложение двоичных чисел.... http://www.cyberforum.ru/cpp-beginners/thread292909.html
Скажите пожалуйста как сложить два двоичных числа!!! программа работает, но не правильно!!!#include <cstdlib> #include <iostream> #include <math.h> #include "Bin.h" using namespace std; Bin...
C++ Разработать функцию обслуживания одного покупателя при условии, что каждый может заказать нужный ему набор блюд, но не более одной порции каждого блюд В буфете предлагают покупателю меню из четырех блюд. Каждое блюдо имеет свою цену и представлено известным количеством порций. Разработать функцию обслуживания одного покупателя при условии, что... подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
11.05.2011, 13:23
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
64
65
66
#include <iostream>
#include <vector>
#include <iterator>
#include <fstream>
#include <algorithm>
 
typedef std::vector<int>::iterator iveciter;
 
int main(int argc, char* argv[])
{
    std::ifstream ifs;
    std::istream* pis;
    
    std::vector<int> ivec;
 
    if(argc > 2)
    {
    std::cerr << "Usage: " << *argv << " FILE" << std::endl;
    return 1;
    }
    
    if(argc == 1)
    {
    std::cout << "Input integer values (EOF to stop):" << std::endl;
    pis = &std::cin;
    }
    
    else
    {
    ifs.open(argv[1]);
    
    if(!ifs.is_open())
    {
        std::cerr << "Can't open file " << argv[1] << std::endl;
        return 1;
    }
    pis = &ifs;
    }
    
    
    std::copy(std::istream_iterator<int>(*pis),
          std::istream_iterator<int>(),
          std::inserter(ivec, ivec.begin()));
 
    if(argc == 2)
    {
    std::cout << "Initial array:" << std::endl;
    std::copy(ivec.begin(), ivec.end(), std::ostream_iterator<int>(std::cout, "\n"));
    }
 
    for(iveciter it = ivec.begin(); it != ivec.end(); ++it)
    {
    iveciter it1;
    
    while((it1 = std::find(it + 1, ivec.end(), *it)) != ivec.end())
        ivec.erase(it1);
    }
        
    std::cout << "Array with removed duplicating elements:" << std::endl;
    std::copy(ivec.begin(), ivec.end(), std::ostream_iterator<int>(std::cout, "\n"));
    
    if(ifs.is_open())
    ifs.close();
    
    return 0;
}
Код
[nameless@desktop cpp]$ cat file.in && ./sample file.in
2 3 2 4 1 2 3 4 5 8 9 8
Initial array:
2
3
2
4
1
2
3
4
5
8
9
8
Array with removed duplicating elements:
2
3
4
1
5
8
9
[nameless@desktop cpp]$
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru