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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужно описать структуру с именем МОТЕ и т.д. http://www.cyberforum.ru/cpp-beginners/thread292963.html
Описать структуру с именем МОТЕ, содержащую следующие поля: - фамилия, имя; - номер телефона; - дата рождения (массив из трех чисел). Написать программу, выполняющую следующие действия: - ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE; - записи должны быть упорядочены по трем первым цифрам номера телефона; - вывод на экран информации о человеке, чья фамилия...
C++ Создание (вернее, внедрение) манипулятора Здравствуйте! Помогите пожалуйста! Лаба горит! Помогите создать манипулятор консольного ввода\вывода (insetup\outsetup). Внедрить его надо в этот код #include <iostream> #include <conio.h> #include <locale> using namespace std; class Mas { unsigned int n, *V; 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* argv) { char str;
C++ сложение двоичных чисел.... http://www.cyberforum.ru/cpp-beginners/thread292909.html
Скажите пожалуйста как сложить два двоичных числа!!! программа работает, но не правильно!!!#include <cstdlib> #include <iostream> #include <math.h> #include "Bin.h" using namespace std; Bin Bin:: operator+(Bin& b1){ int t=0; int i, n1,n2,s;
C++ Разработать функцию обслуживания одного покупателя при условии, что каждый может заказать нужный ему набор блюд, но не более одной порции каждого блюд В буфете предлагают покупателю меню из четырех блюд. Каждое блюдо имеет свою цену и представлено известным количеством порций. Разработать функцию обслуживания одного покупателя при условии, что каждый может заказать нужный ему набор блюд, но не более одной порции каждого блюда. При расчете за набор блюд покупателю может быть выдана сдача. Разработать программу, использующую созданную... подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
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]$
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru