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

STL set - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как подключить свой модуль http://www.cyberforum.ru/cpp-beginners/thread311878.html
Используйте теги форматирования кода! Добавлено через 5 часов 20 минут Здравствуйте ,скажите как правильно подключить модуль в Си++. Файл rectangel.cpp выглядит так: /* Модуль содержит описание клсса TRect - прямоугольник. 1. Используя этот модуль, написать программу, изображающую на экране мигающий прямоугольник. Изменить модуль, объявив часть полей личными.
C++ Возрастающая последовательность Народ помогите написать прогу на Си. Даны вещественные числа. определить образуют ли они возрастающую последовательность. если да - то найти сумму первого и последнего элементов а если нет то найти произведение максимального и минимального элеменов. http://www.cyberforum.ru/cpp-beginners/thread311875.html
переделать программу C++
дан код , результатом которого является бегающий человечек под дождем, прошу переделать этот код так чтобы дождя не было, был лишь только бегающий человечек, прошу помочь, нужно срочно, на с\c++ #include<iostream.h> #include<graphics.h> #include<conio.h> #include<dos.h> #include<stdlib.h> int sineGen(int cntr) {
Книги по С++ C++
Доброго времени суток!!!Задался целью тщательно изучить С++. Посоветуйте пожалуйста хорошие книги и учебники для изучения этого могучего языка :)Заранее спасибо :) З.Ы. А как вы изучали язык?Поделись опытом :)
C++ Поиск подстроки в строке http://www.cyberforum.ru/cpp-beginners/thread311860.html
Добрый вечер. Помогите пожалуйста с заданием, нужно срочно его сделать. Сам текст: даны 2 массива (один большой, другой маленький), нужно написать функцию, которая ищет подстроку в строке. Т.е. получается идет поиск одного массива в другом. В итоге получается 4 параметра: это 1-ый массив и его длина, и 2-ой массив, который мы ищем и соответственно его длина. У меня есть только сама функция, но я...
C++ хеш-таблицы Реализовать ассоциативный массив в виде хеш-таблицы с операциями добавления, поиска . Ключом массива должна быть строка, значением – целое число. В качестве хеш-функции следует использовать полиномиальное хеширование. Хеширование цепочками + нахождения самой часто встречающейся длины цепочек подробнее

Показать сообщение отдельно
максим)
 Аватар для максим)
2 / 2 / 0
Регистрация: 02.10.2010
Сообщений: 36
03.06.2011, 18:20     STL set
вопрос почему в строке while( (*ii)!=elem) говорит что я не перегрузил != не могу понять, и почему в строке cout<<*p<<" "; говорит что я не перегрузил вывод для моего класса ?? Подскажите кто то, оч прошу, я сравниваю пока для простоты по интовой переменной класса, и приходится пользоваться функцией лук, прописанной в классе , с типом инт9если сделать 1 переменную в классе все работает...
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include <vcl.h>
#pragma hdrstop
#include<iostream.h>
#include<conio.h>
#include<stack.h>
#include <set.h>
#include <string.h>
 
class My{
  protected:
  char my[20];
  int age;
  public:
  My(){ strcpy(my,"none"); age=0;}
  My(char* mm,int agee){ strcpy(my,mm); age=agee;}
  void look()const{ cout<<"name : "<<my<<"age : "<<age<<endl; }
friend ostream& operator <<(ostream& os, My& m)
      {
        os<<"name : "<<m.my<<" ";
        os<<"age :"<<m.age<<" ";
        return os;
      }
  friend istream& operator >>(istream& os, My& m){
    char x[20];
    int ag;
    os>>x;
    os>>ag;
    m=My(x,ag);
    return os;
  }
 
/*int operator !=(const My obj)
           {int res=0;
            if ((age!=obj.age)&&(my!=obj.my))
             {res=1;
             }
            return res;
           }   */
 int operator<(const My obj)
           {int res=0;
            if (my<obj.my)
             {res=1;
             }
            return res;
           }
 int operator >(const My obj)
           {int res=0;
            if (my>obj.my)
             {res=1;
             }
            return res;
           }
 int operator ==(const My obj)
           {int res=0;
            if (my==obj.my)
             {res=1;
             }
            return res;
           }
         bool operator !=(const My obj)
           {
            if ((age>obj.age)||(age<obj.age))
             return true;
             else
            return false;
           }
 bool operator <(const My& obj)const
           {return obj.my<my;}
 bool operator ()(const My& x, const My& y) const { return x < y; }
};
//**************functions**************//
using namespace std;
void print(set<My > q)
 {
 
  set<My>::iterator p=q.begin();
  while(p!=q.end()){
  cout<<*p<<" ";
  ++p;
 }
}
void search_del(set<My>& t,My elem ,int n){
    set<My> p;
    set<My>::iterator ii=t.begin();
    while( (*ii)!=elem){
      p.insert(*ii);
      t.erase(ii,++ii);
    }
    p.insert(*ii);
    t.erase(ii,++ii);
    for(int j=0 ; j<n; j++)
    t.erase(ii,++ii);
    while(ii!=t.end()){
      p.insert(*ii);
      t.erase(ii,++ii);
    }
    cout<<endl;
    t=p;
   print(t);
}
//****************main**************//
int main(){
set< My> vec;
int len,size;
My tmp;
cout<<" Enter length :"<<endl;
cin>>len;
cout<<endl<<"Enter elements :"<<endl;
for(int i=0; i<len; i++){
  cin>>tmp;
  vec.insert(tmp);
}
print(vec);
 
cout<<endl;
cout<<" Enter how many elems delete :"<<endl;
cin>>len;
set<My>::iterator k=vec.begin();
set<My>::iterator t=vec.begin();
for(int i=0; i<len; i++)
++t;
vec.erase(k,t);
print(vec);
cout<<endl<<" Enter how many elems add :"<<endl;
cin>>len;
cout<<endl<<" Enter elements to add :"<<endl;
for(int i=0; i<len; i++){
  cin>>tmp;
  vec.insert(tmp);
}
print(vec);
cout<<endl<<" enter element to delete after :"<<endl;
cin>>tmp;
cout<<endl<<"enter  how many elements delete :"<<endl;
cin>>size;
cout<<endl;
search_del(vec,tmp ,size);
getch();
return 0;
}
Добавлено через 4 минуты
вот только что до этого писал с другими шаблонами и все замечательно -

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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <stack.h>
#include <vector.h>
#include <queue.h>
//*******my_class****************//
class CD {
  protected :
    double my;
    char name[20];
  public:
    CD(){my=0;
      strcpy(name,"none");
    }
    CD(double x,char *tt){my=x; strcpy(name,tt);}
     bool operator <(CD obj)
           {bool res;
            if(my<obj.my)
             {res=true;
             }
            else {res=false;}
            return res;
           }
           friend ostream& operator << (ostream& is, CD& mmy){
            is<<" name :"<<mmy.name;
            is<<" price :"<<mmy.my;
            return is;
           }
           friend istream& operator >>(istream& is, CD& mmy){
           double take;
           char take2[20];
           is>>take;
           is>>take2;
           mmy=CD(take,take2);
           return is;
           }
           int operator !=(const CD obj)
           {int res=0;
            if (my!=obj.my)
             {res=1;
             }
            return res;
           }
};
//*****functions*****************//
void print(queue<CD> q)
 {CD tmp;
  queue<CD> tt;
  while(!q.empty()){
  cout<<q.front()<<endl;
  tmp =q.front();
  q.pop();
  tt.push(tmp);
  }
  q=tt;
 }
void print_stack(stack<CD>& tt)
{
 stack<CD> xx;
    while(!tt.empty())
    {
      cout<<tt.top()<<endl;
      xx.push(tt.top());
      tt.pop();
    }
    tt=xx;
}
void search_del(stack<CD>& t,CD elem ,int n){
    stack<CD> p;
    while( t.top()!=elem){
      p.push(t.top());
      t.pop();
    }
    p.push(t.top());
    t.pop();
 
    for(int j=0 ; j<n; j++)
    t.pop();
    while(!t.empty()){
      p.push(t.top());
      t.pop();
    }
    t=p;
    print_stack(t);
}
//**************main******************//
int main(){
int size,i;
CD tmp;
 stack<CD> stak;
 cout<<" Enter first size of stack :"<<endl;
 cin>>size;
 cout<<endl<<" enter elements of stack :"<<endl;
 for(i=0; i<size; i++){
   cin>>tmp;
   stak.push(tmp);
 }
 print_stack(stak);
 cout<<endl<<" enter how many elements delete :"<<endl;
 cin>>size;
 for(i=0; i<size; i++)
 stak.pop();
 cout<<endl<<"After delete :"<<endl;
 print_stack(stak);
 cout<<endl<<" enter how many elements add :"<<endl;
 cin>>size;
 for(i=0; i<size; i++){
   cin>>tmp;
   stak.push(tmp);
 }
 cout<<endl<<"After add elements :"<<endl;
 print_stack(stak);
 cout<<endl;
 cout<<"Enter element to delete after :"<<endl;
 cin>>tmp;
 cout<<endl<<"Enterhow many elements delete :"<<endl;
 cin>>size;
 cout<<endl<<" after delete "<<size<<" elements, after element :"<<tmp<<endl;
 search_del(stak,tmp ,size);
 queue<CD> que,tt;
 cout<<endl<<" Enter first size of queue :"<<endl;
 cin>>size;
 cout<<endl<<" enter elements of queue :"<<endl;
 for(i=0; i<size; i++){
   cin>>tmp;
   que.push(tmp);
 }
 tt=que;
 print(que);
 cout<<endl;
 while(!tt.empty()){
   stak.push(tt.front());
   tt.pop();
 }
 cout<<" new stack :"<<endl;
 print_stack(stak);
 cout<<endl<<" queue :"<<endl;
 print(que);
 
 getch();
 return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru