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

Как удалить первый элемент из std::list? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дан одномерный массив A[N]. Найти max(a2,a4,...a2*k)+min(a1,a3,...,a2*k+1 http://www.cyberforum.ru/cpp-beginners/thread294867.html
Дан одномерный массив A. Найти max(a2,a4,...a2*k)+min(a1,a3,...,a2*k+1=-O)
C++ свой строковой тип помогите пожалуйста разобраться со строковым типом! пишу свой класс строки, запнулся на реализации оператора + есть вот такие виды операторов + и = void operator =(const WCHAR *val); void operator =(const MyStr &val); const MyStr operator +(const WCHAR *val); const MyStr operator +(const MyStr &val); теперь пишу следующее: MyStr s; s=L"Привет "; http://www.cyberforum.ru/cpp-beginners/thread294866.html
C++ Определить, сколько среди чисел меньших К, равных К и больших К
Задана последовательность из N вещественных чисел. Определить, сколько среди них чисел меньших К, равных К и больших К.
C++ Сортировка слов по алфавиту с ипользованием классов
Есть задание - написать программу, которая бы сортировала слова в строке по алфавиту. У меня есть такой вот алгоритм. Надо его усовершенствовать так, что бы он сортировал еще и русские слова, а так же использовать классы. #include <string> #include <iostream> using namespace std; string sorting(string str) { int k=0; //считаем пробелы
C++ Выберите из строки все буквы от Q (q) до Z (z) и отсортируйте их в алфавитном порядке http://www.cyberforum.ru/cpp-beginners/thread294850.html
Всем доброго времени суток. Задачка: С клавиатуры вводится строка. Выберите из нее все буквы от Q (q) до Z (z) (строчные преобразуйте в прописные) и отсортируйте их в алфавитном порядке. Допустимые символы - прописные и строчные латинские буквы. Пример. Исходная строка: SHiFROVkaOtSHPIonA Результат: rsstv Подскажите пожалуйста как это грамотно реализовать. Если не сложно покажите на...
C++ манипуляторы Создайте свои манипуляторы которые будут выполнять 1)вывод всех символов равных заданному заменить пробелом 2)вывод всех символов прописными и замена пробелов на * 3)вывод всех чисел в ОСТ формате и удвоение пробелов подробнее

Показать сообщение отдельно
2008kedr2008
3 / 3 / 0
Регистрация: 16.11.2010
Сообщений: 165
13.05.2011, 19:06  [ТС]     Как удалить первый элемент из std::list?
Как удалить первый элемент из std::list? это условие
это то что я смог накалякать!!!
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
#include <cstdlib>
#include <iostream>
#include "Bin.h"
using namespace std;
 
int main(int argc, char *argv[])
{
    string c;
    Bin b1, b2,b3;
    cout<<"Enter the first number:"<<endl;
    cin>>b1;
     if(b1.check()){
    cout<<"Enter the command(+,-,*,/,%,>,>,!=,==)"<<endl;
    cin>>c;
     if(c==">" || c=="<" || c=="==" || c=="!=" || c=="+" || c=="*"|| c=="/"|| c=="-"|| c=="%"){
    cout<<"Enter the second number:"<<endl;
    cin>>b2;
     if(b2.check()){
   //Операция сложение
      if(c=="+"){ 
       b1=b1+b2;
        cout<<"Result of additions:"<<endl<<b1; } 
        // Операция вычитание
         if(c=="-"){
            if(b1>b2){ 
              b1=b1-b2;
              cout<<"Result:"<<endl<<b1;}
            else{cout<<"The inadmissible answer!"<<endl;}}
        //Операция  умножение
            if(c=="*"){
            b1=b1*b2;
            cout<<"Result of multiple:"<<endl<<b1;} 
        //Операция деление
          if(c=="/"){
            b1=b1/b2;
            cout<<"Result of division:"<<endl<<b1;} 
           // Операция остаток
            if(c=="%"){
            b1=b1%b2;
            cout<<"Result:"<<endl<<b1;
          }   
    // Операция больше
    if(c==">"){
    if(b1>b2){
    cout<<"The first number more than the second!"<<endl;
    }
    else{
    cout<<"The first number no more than the second!"<<endl;
    if(b1==b2){cout<<"The numbers are equal!"<<endl;}
    else{cout<<"The first number less than the second!"<<endl;}
         }
         }
    //Операция меньше
    if(c=="<"){
    if(b1>b2){
    cout<<"The first number less than the second!"<<endl;
    }
    else{
    cout<<"The first number no less than the second!"<<endl;
    if(b1==b2){cout<<"The numbers are equal!"<<endl;}
    else{cout<<"The first number more than the secind!"<<endl;}
         }
         }
    // Операция равно
    if(c=="=="){
    if(b1==b2){
    cout<<"The Numbers are equal!"<<endl;
    }
    else{
    cout<<"The numbers are not equal!"<<endl;
    if(b1>b2) {cout<<"The first number more than the second!"<<endl;}
    else{cout<<"The first number less than the second!"<<endl;}
               }
               }
    // Операция не равно
    if(c=="!="){
    if(b1!=b2){
    cout<<"The numbers are not equal!"<<endl;
    if(b1>b2){cout<<"The first number more than the second!"<<endl;}
    else{cout<<"The first number less than the second!"<<endl;}
    }
     else{cout<<"The numbers are equal!"<<endl;}
     }
     }
     else {cout<<"The second number is incorrect!"<<endl;}
     }
     
     else {cout<<" The incorect operations is entered!"<<endl;}
     }
     else {cout<<"The first number is incorrect!"<<endl;}
     cin>>b3;
  cout<<b3.sign();
    system("PAUSE");
    return EXIT_SUCCESS;
}
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
#ifndef BIN
#define BIN
 
#include <list>
#include <iostream>
 
using namespace std;
class Bin{
      public:
             friend istream& operator>>(istream&, Bin&);
             friend ostream& operator<<(ostream&, const Bin&);
             Bin operator+(Bin&);
             Bin operator-(Bin&);
             Bin operator*(Bin&);
             Bin operator/(Bin&);
             Bin operator%(Bin&);
             int operator>(Bin);
             int operator<(Bin);
             int operator==(Bin);
             int operator!=(Bin);
             int check();
             Bin sign();
             private:
             list <unsigned char> n;
             list <unsigned char>::iterator it;
             long Transfer();
             friend void conclusion(Bin);
};
#endif
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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
#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;
char f[2];
if(b1.n.size()>n.size()){s=b1.n.size();}  
else{s=n.size();}
 b1.n.resize(s);
 n.resize(s);
for(b1.it=b1.n.begin(), it=n.begin(), i=0; i<s; i++){  
      *f=*b1.it; 
n1=atoi(f);  
  *f=*it; 
 n2=atoi(f);
 n1=n1+n2+t;  
t=0;  
if(n1>1){  
t=n1/2;            
n1=n1%2;
}
_itoa(n1, f, 2);
  *b1.it=*f;
 if(i<b1.n.size()){b1.it++;}  
 else{*b1.it='0';}  
 if(i<n.size()){it++;}
         else{*it='0';}  
}  
  if(t>0){
      _itoa(t, f, 2);
      b1.n.push_back(*f); 
    
}
    return b1;
}
  
Bin Bin:: operator*(Bin& b1){
int i;
  long n1, n2; 
  int s;
Bin b2,b3;
 
if(b1.n.size()>n.size()){s=b1.n.size();}  
else{s=n.size();}
 b1.n.resize(s);
 n.resize(s);
 char f[s];
b2.n=n; 
    n1=b2.Transfer(); 
 for(it=n.begin(), i=0; i<s; i++, it++){
                   *f=*it;
                   n2=atoi(f);
                   n1=n1*n2;
 }
 _itoa(n1,f,2);
  for(i=strlen(f)-1; i>=0; i--){ 
       b3.n.push_back(f[i]);
     }
 return b3;
};
long Bin::Transfer(){ 
    int n1, i;
    long n2;
    char f[2];
    n2=0; 
    
    for(it=n.begin(), i=0; i<n.size(); i++, it++){
     
           *f=*it;
           n1=atoi(f);
      
      n2=n1*long(pow(2, i))+n2; 
    }
    return n2;
}
 
Bin Bin::operator/(Bin& b1){ 
    long n1, n2; 
    Bin b2, b3; 
   int i;
    char a[n.size()]; 
    b2.n=n; 
    n1=b2.Transfer(); 
    n2=b1.Transfer();
    n1=n1/n2; 
     _itoa(n1, a, 2); 
     for(i=strlen(a)-1; i>=0; i--){ 
       b3.n.push_back(a[i]);
     }
     return b3;
}
Bin Bin::operator-(Bin& b1){
    long n1, n2; 
    Bin b2, b3; 
    int i;
    char a[n.size()]; 
    b2.n=n; 
    n1=b2.Transfer(); 
    n2=b1.Transfer();
    n1=n1-n2; 
     _itoa(n1, a, 2); 
     for(i=strlen(a)-1; i>=0; i--){ 
       b3.n.push_back(a[i]);
     }
     return b3;
}
Bin Bin::operator%(Bin& b1){ 
    long n1, n2; 
    Bin b2, b3; 
    int i;
    char a[n.size()]; 
    b2.n=n; 
    n1=b2.Transfer(); 
    n2=b1.Transfer();
    n1=n1%n2; 
     _itoa(n1, a, 2); 
     for(i=strlen(a)-1; i>=0; i--){ 
       b3.n.push_back(a[i]);
     }
     return b3;
}  
int Bin::check(){ 
    int i;
    for(i=0, it=n.begin(); i<n.size(); i++, it++){ 
      if(not(*it=='0' || *it=='1'|| *it=='-')){break;} 
    }
    if(i==n.size()){return 1;} 
    else{return 0;} 
}
 
istream& operator>>(istream& in, Bin& b1){
         string s1;
         int i;
         in>>s1;
   for(i=s1.size()-1; i>=0; i--){ 
           b1.n.push_back(s1[i]);}
         return in;
}
 
ostream& operator<<(ostream& out, const Bin& b1){
         conclusion(b1);
         cout<<endl;
         return out;};
void conclusion(Bin b1){
     int i;
     b1.it=b1.n.end();
     for(b1.it--, i=b1.n.size()-1; i>=0; b1.it--, i--)
     cout<<*b1.it;
}
int Bin::operator>(Bin b1) {
     if(n>b1.n) {return 1;}
     else {return 0;}
     }
int Bin::operator<(Bin b1) {
    if(n<b1.n) {return 1;}
    else {return 0;}
         }
int Bin::operator!=(Bin b1){
    if(n!=b1.n) {return 1;}
    else {return 0;}
         }
int Bin::operator==(Bin b1){
    if(n==b1.n) {return 1;}
    else {return 0;}
         } 
 Bin Bin::sign(){
      Bin h2;
      int i;
it=n.begin();
if(*it=='-') {h2.n.push_front('1'); it++;
for(i=1; i<n.size(); i++, it++){ if(*it=='0')h2.n.push_back('1');else h2.n.push_back('0'); }}
else  h2.n.push_front('0');{
     for(i=0; i<n.size(); i++, it++){ if(*it=='0')h2.n.push_back('0');else h2.n.push_back('1');  
     } 
     }
     reverse(h2.n.begin(), h2.n.end());
  
      return h2;
      
    
    
};
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru