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

Класс, динамический массив строк - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Оформить в виде функции http://www.cyberforum.ru/cpp-beginners/thread848795.html
Оформить каждый пункт задания в виде функции. Все необходимые данные для функций должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается. #include "stdafx.h" #include <iostream> #include "conio.h" #include "math.h" #include "windows.h" using namespace std; int **mas, n, m, i,j, y, temp;
C++ Преобразование списка адресов Возникли трудности, не могу решить задачу с переводом адресов в числа. Есть файл с таким содержанием: (данные разделены пробелами, я для наглядности по столбцам разбила) (Из файла надо считать данные) yandex.ru www.cyberforum.ru 3 google.ru yandex.ru 7 mail.ru www.cyberforum.ru 10... http://www.cyberforum.ru/cpp-beginners/thread848792.html
C++ Квадратная матрица
Дана квадратная матрица А. Нужно вычислить по ней матрицу B тех же размеров по формуле (представленна ниже). Вычисление матpицы B офоpмить в виде функции. Помогите с задачкой пожалуйста :wall:
Изменение перенных класса в потоке C++
Здравствуйте! У меня есть класс и в этом классе создается поток. Подскажите, как пользоваться переменной класса в потоке. Если написать ClassA::VarA = 1; то напишет nonstatic member и так далее.
C++ Динамическое программирование http://www.cyberforum.ru/cpp-beginners/thread848748.html
Ограничение по времени: 2 секунды Ограничение по памяти: 256 мегабайт У Пети есть полоска бумаги, разделенная на N клеток. Он хочет раскрасить каждую клетку в синий, красный или зеленый цвет. Кроме этого, Пете интересны одноцветные отрезки. Петя называет одноцветным отрезком несколько подряд идущих клеток, раскрашенных в один цвет и ограниченных с обеих сторон клет- ками другого цвета или...
C++ Массивы. Найти наибольший и наименьший элементы, среди расположенных на главной и побочной диагоналях Заполнить матрицу А размера 10*10 случайными числами от -5 до 23. Найти наибольший и наименьший элементы, среди расположенных на главной и побочной диагоналях подробнее

Показать сообщение отдельно
DrARTI
0 / 1 / 0
Регистрация: 25.04.2013
Сообщений: 6

Класс, динамический массив строк - C++

26.04.2013, 20:11. Просмотров 657. Ответов 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
main:
#include "Header.h"
#include <iostream>
void main (void){
int *size;
size = new int;
std::cout << "Enter size: ";
std::cin >> *size;
string *element;
element = new string [*size];
std::cout << "Enter strings: ";
for(int i=0; i<*size; i++){std::cin >> element[i];};
LinkedList List1(element, *size);
delete(size);
short com=6;
string newstring;
do{switch(com){
case 1: //Вывод содержимого
    List1.show_elements();
    break;
case 2: //Вставка в начало
    std::cin >> newstring;
    List1.insert_beg(newstring);
    break;
case 3: //Вставка в конец
    std::cin >> newstring;
    List1.insert_end(newstring);
    break;
case 4: //Удаление из начала
    List1.remove_beg();
    break;
case 5: //Удаление с конца
    List1.remove_end();
    break;
case 6: //Меню
    List1.menu();
};
std::cin >> com;}while(com!=0);
}
 
 
Заголовок: (Header.h)
#pragma once
#include <string>
typedef std::basic_string<char> string;
class LinkedList {
public:
LinkedList (string*, int);
void insert_beg (string);
void insert_end (string);
void search (string);
void remove_beg (void);
void remove_end (void);
void show_elements (void);
void menu (void);
private:
string *element;
int size;
};
 
 
Реализация методов:
#include "Header.h"
#include <iostream>
LinkedList::LinkedList(string *element_in,int size_in){
size = size_in;
element = new string [size];
for(int i=0;i<size;i++){element[i].swap(element_in[i]);};}
void LinkedList::show_elements(void){for(int i=0;i<size;i++)std::cout << element[i] << std::endl;}
void LinkedList::insert_beg(string newstring){
string *rs;
rs = new string[size];
for(int i=0;i<size;i++){rs[i].swap(element[i]); /*element[i].~basic_string();*/};
size++;
//delete(element);
element = new string[size];
element[0].swap(newstring);
for(int i=0; i<size; i++){element[i+1].swap(rs[i]);};}
void LinkedList::insert_end(string newstring){
size++;
element[size]=newstring;}
void LinkedList::remove_beg(void){
for(int i=0;i<size;i++){element[i].swap(element[i+1]);}
size--;}
void LinkedList::remove_end(void){size--;}
void LinkedList::menu(void){
std::cout << "Press 1 to show elements" << std::endl <<
"Press 2 to insert in the begining" << std::endl <<
"Press 3 to insert in the end" << std::endl <<
"Press 4 to remove from the begining" << std::endl <<
"Press 5 to remove from the end" << std::endl <<
"Press 6 to summon this menu again" << std::endl;}
Чего я хочу?
В принципе, от желающих мне помочь я много просить не могу. Но очень хотелось бы рабочую реализацию массива в классе с рабочей реализацией хотя бы одного метода (вставки в начало, на пример). Если возможно - всё с пояснениями.
Надеюсь, ничего не перепутал. Всем вам заранее большое спасибо.

Добавлено через 21 час 39 минут
Поднимаю.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru