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

STL - C++

Восстановить пароль Регистрация
 
Kinroom
1 / 1 / 0
Регистрация: 13.12.2012
Сообщений: 99
18.06.2013, 22:19     STL #1
Данная программа делает следующее
1. Создать объект-контейнер в соответствии с вариантом задания и заполнить его данными, тип которых определяется вариантом задания.
2. Посмотреть контейнер.
3. Изменить контейнер, удалив из него одни элементы и заменив другими.
4. Посмотреть контейнер, используя для доступа к его элементам итераторы.
5. Создать второй контейнер этого же класса и заполнить его данными того же типа, что и первый контейнер.
6. Изменить первый контейнер, удалив из него n элементов после заданного и добавив затем в него все элементы из второго контейнера.
7. Посмотреть первый и второй контейнеры.
Тип данных :list.set,int
Помогите пожалуйста сделать тоже самое, только для данных пользовательского типа.
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
#include<iostream>
#include<time.h>
#include<list>
using namespace std;
const int N = 15;
list<int> A;list<int> C;
void print(list<int> x){
 
while(!x.empty()){
 
cout<<x.front()<<" ";
x.pop_front();}
}
void make(list<int>& x){
for (int i = 0; i < N;i++){
x.push_back(rand()%29+1);
}
}
 
 
void main(){
srand(time(NULL));
make(A);
list<int> tmp = A;
print(A);
_01:cout<<"\nWrite digit to change: ";int digit(0); cin>>digit;
A.remove(digit);//удаляю введенное число
int newdigit = digit+15;//увеличиваю новое число, чтобы не повторилось случайно с удаленным
int size = N - A.size();//узнаю сколько чисел удалено
for (int i = 0; i < size; i++) A.push_back(rand()%newdigit+1); //добавляю новые значинея вместо удаленных
if (size!=0){
cout<<"OK\nAFTER CHANGE\n";
print(A);cout<<endl;
}
else {cout<<"What you want to change?? digit not exist!!"; goto _01;}
int n(0),k(0);
cout<<"Delete n element from k position Write n: ";cin>>n;
cout<<"Write k ";cin>>k;
int cout1(0);
list<int>::iterator m;
m = A.begin();
for (int i = 0; i < k; i++) *m++;
for (int i = 0; i < n; i++) {
A.remove(*m++); cout1++;
}
int how = N - A.size() - n;
for (int i = 0; i< how; i++) A.push_back(rand()%29+1);
print(A);list<int> B = A; int sizeB = B.size();
cout<<"\nAFTER CONCAT C = \n";
for (int i = 0 ; i < N; i++) {C.push_back(tmp.front()++); tmp.pop_front();}
for (int i = 0 ; i < sizeB; i++) {C.push_back(B.front()++); B.pop_front();}
cout<<endl;
print(C);
cout<<"\n";
system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2013, 22:19     STL
Посмотрите здесь:

C++ STL
C++ STL
C++ STL в С++
STL C++
C++ STL.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,419
18.06.2013, 22:42     STL #2
Везде, где надо заместо int пользовательский тип данных, пишите в прототипе
template <typename T>
перед функцией и заменяете int на T.

Код вы писали? Отступы бы расставили для читаемости
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
18.06.2013, 22:43     STL #3
дубли
Работа з контейнерами
Контейнеры
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,419
18.06.2013, 22:48     STL #4
Jupiter, кстати, объясни пожалуйста, почему
Контейнеры
move_iterator не срабатывает то
Yandex
Объявления
18.06.2013, 22:48     STL
Ответ Создать тему
Опции темы

Текущее время: 11:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru