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

Множества . Найти разность полученного множества с заданным - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ввод-вывод элементов квадратной матрицы http://www.cyberforum.ru/cpp-beginners/thread1165420.html
Помогите написать программу для ввода элементов квадратной матрицы, вывода этого массива на экран, вычисления индексов максимального элемента массива. Заранее спасибо!!
C++ Переделка программы в службу Приветствую всех, написал сетевую програмулину (оттестирована, возьмем за истину, что работает она стабильно и верно), решил попробовать сделать из программы службу. погуглив как и что нашел ссылку на пример, как должен выглядеть шаблон службы. http://code.msdn.microsoft.com/windowsdesktop/CppWindowsService-cacf4948 Немного поковырявшись нашел метод: void... http://www.cyberforum.ru/cpp-beginners/thread1165417.html
Замена значений массива на строчный элемент C++
Здрасте, сделал масив 200 на 200 со случайными цифрами в диапазоне от 0 до 2(0 1 2) Теперь надо 0 заменить на "О" 1 заменить на " " а 2 заменить на " • " Alt+7 и вывести новые символы помогите.
C++ Ссылка на неразрешенный внешний символ _main в функции
Добрый вечер. При компиляции даёт мне такую ошибку MSVCRTD.lib(crtexe.obj) : error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup Вот код #include <iostream> #include <ctime> using namespace std;
C++ Перегрузка "opеrator =" и "{ }" для собственного класса http://www.cyberforum.ru/cpp-beginners/thread1165397.html
Я пытаюсь создать класс Vector. Для задания элементов вектора хотелось бы использовать "opеrator =" и " { } ". Возможно ли это?
C++ Заголовочный файл Доброго времени суток! Ситуация такая: хочу, исходя из функции, создать заголовочный файл. Но, увы, не умею создавать их. Хотелось бы пример посмотреть на основе, желательно с пояснениями. И как их связать, что и куда кидать. #include <fstream> #include <iostream> using namespace std; void arize(char* login; char* pass){ cout << "Логин:... подробнее

Показать сообщение отдельно
stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
05.05.2014, 16:04     Множества . Найти разность полученного множества с заданным
вот набросал выше сказанное
set.hpp
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
#ifndef SET_HEADER_HPP
#define SET_HEADER_HPP
 
#include <vector>
#include <algorithm>
#include <iterator>
 
#if !defined( EXIT_SUCCESS )
 #define EXIT_SUCCESS 0x0
#endif
 
#if !defined( EXIT_FAILURE )
 #define EXIT_FAILURE 0x1
#endif
 
namespace sl
{
 
  enum SetMode
  {
    SM_SPMODE = 0x1,    // объединение множеств посредством stl
    SM_DEFAULT = 0x2,   // объединение множеств в ручную
    SM_SORT = 0x4        // сортировать множество
  };
 
  template <class type>
  class Set
  {
    std::vector<type> set;
    SetMode mode;
  public:
 
    Set(SetMode mode = SM_DEFAULT);
    Set(type* begSet, type* endSet,SetMode mode = SM_DEFAULT);
    Set(std::vector<type>& nSet,SetMode mode = SM_DEFAULT);
    
    Set<type>& operator+ (Set<type>& otherSet);
    Set<type>& operator- (Set<type>& otherSet);
    Set<type>& operator += (Set<type>& otherSet);
    Set<type>& operator -= (Set<type>& otherSet);
 
    std::vector<type> GetSetValue(void);
    std::ostream& GetSetValue(std::ostream& out);
    
    friend std::ostream& operator << (std::ostream& out, Set<type>& set)
    {return (set.GetSetValue(out));}
  };
}
 
#endif
set.cpp
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include "set.hpp"
 
namespace sl
{  
 
  template <class type>
  Set<type>::Set(SetMode mode = SM_DEFAULT):mode(mode){}
 
  template <class type>
  Set<type>::Set(type* begSet, type* endSet,SetMode mode = SM_DEFAULT):mode(mode)
  { std::copy(begSet,endSet,std::back_inserter(set));}
 
  template <class type>
  Set<type>::Set(std::vector<type>& nSet,SetMode mode = SM_DEFAULT):mode(mode)
  {set = nSet;}
 
  
  template <class type>
  std::vector<type> Set<type>::GetSetValue(void)
  {return (set);}
 
  template <class type>
  Set<type>& Set<type>::operator+ (Set<type>& otherSet)
  {
    if (this == &otherSet)
      return (*this);
 
    if (mode & SetMode::SM_SPMODE)
    {
      std::vector<type> temp = set;
      set.clear();
      temp.insert(temp.end(),otherSet.set.begin(),otherSet.set.end());
      std::sort(temp.begin(),temp.end());
      std::unique_copy(temp.begin(),temp.end(),std::back_inserter(set));
    }
    else
    {
      if (!set.size())
        set = otherSet.set;
      else
      {
        for (int i = 0x0; i < otherSet.set.size(); ++i)
          if (std::find(set.begin(),set.end(),otherSet.set.at(i)) == set.end())
            set.push_back(otherSet.set.at(i));
        
      }
    }
 
    return (*this);
  }
 
  template <class type>
  Set<type>& Set<type>::operator- (Set<type>& otherSet)
  {
    if (this == &otherSet || !set.size())
      return (*this);
 
    std::vector<type>::iterator it;
 
    for (int i = 0x0; i < otherSet.set.size(); ++i)
    {
        it = std::find(set.begin(),set.end(),otherSet.set.at(i));
 
        if (it != set.end())
         set.erase(it);
    }
 
    return (*this);
  }
 
  
  template<class type>
  Set<type>& Set<type>::operator += (Set<type>& otherSet)
  {return (*this + otherSet);}
 
  template<class type>
  Set<type>& Set<type>::operator -= (Set<type>& otherSet)
  {return (*this - otherSet);}
 
 
  template<class type>
  std::ostream& Set<type>::GetSetValue(std::ostream& out)
  {
    if (mode & SM_SORT)
      std::sort(set.begin(),set.end());
 
    for (int i = 0x0; i < set.size(); ++i)
      out << set.at(i) << ' ';
    out << std::endl;
    return (out);
  }
 
 
}
main.cpp
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
#include <iostream>
 
#include "set.hpp"
#include "set.cpp"
 
int main(void)
{
  int buff[] = {1,2,3,4,5};
  int buff2[] = {1,3,6,7,8,9,-12};
  int buff3[] = {8,9,-12,10,11,12};
 
  int size = sizeof(buff) / sizeof(buff[0x0]);
  int size2 = sizeof(buff2) / sizeof(buff2[0x0]);
  int size3 = sizeof(buff3) / sizeof(buff3[0x0]);
 
  sl::Set<int> firstSet(buff,buff+size,sl::SM_SORT);
  sl::Set<int> secondSet(buff2,buff2+size2,sl::SM_SORT);
  sl::Set<int> thirdSet(buff3,buff3+size3,sl::SM_SORT);
  
  std::cout << "First set is  : " << firstSet << std::endl
            << "Second set is : " << secondSet << std::endl
            << "Third set is  : " << thirdSet << std::endl;
 
  secondSet += firstSet;
 
  std::cout << "The second set after merging is : " << secondSet << std::endl;
  thirdSet -= secondSet;
  std::cout << "The third set afrer subtracting is : " << thirdSet << std::endl;
  system("pause");
  return (EXIT_SUCCESS);
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru