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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Darja
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 31
#1

Составить описание класса одномерных массивов строк - C++

17.06.2012, 17:02. Просмотров 1608. Ответов 6
Метки нет (Все метки)

Составить описание класса одномерных массивов строк,каждая строка которых задается длиной и указателем на выделенную для нее память. Предусмотреть возможность обращения к отдельным строкам массива по индексам, контроль выхода за пределы индексов, выполнения операций поэлементного сцепления двух массивов с образованием нового массива, слияния двух массивов с исключением повторяющихся элементов, печать (вывод на экран) элементов массива и всего массива.

Очень надеюсь на вашу помощь!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2012, 17:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Составить описание класса одномерных массивов строк (C++):

Составить описание класса одномерных массивов строк - C++
Составить описание класса одномерных массивов строк, каждая строка задается длиной и указателем на выделенную для нее память. Предусмотреть...

Составить описание класса одномерных массивов строк, каждая строка задается длиной и указателем на выделенную для нее память - C++
Реализация системы классов для работы с одномерными массивами строк.Составить описание класса одномерных массивов строк, каждая строка...

Составить описание класса для определения одномерных массивов - C++
напишите пжлста програмку:

Описание класса для определения одномерных массивов строк. Исправить ошибку - C++
Программа иногда работает правильно а иногда вылетает с ошибкой Unhandled exception at 0x009C12F8 in HelloWorld.exe: 0xC0000005: Access...

Описание класса для определения одномерных массивов строк фиксированной длины - C++
Составить описание класса для определения одномерных массивов строк фиксированной длины. Предусмотреть возможность обращения к отдельным...

Пытаюсь создать описание класса одномерных массивов строк. В чем моя ошибка? - C++
Помогите пожалуйста! Пытаюсь создать описание класса одномерных массивов строк. В чем моя ошибка? #include <iostream> #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Root2x
12 / 12 / 0
Регистрация: 21.05.2012
Сообщений: 52
18.06.2012, 18:41 #2
Опишите пожалуйста подробнее, что необходимо? Что именно должен содержать класс ( Класс содержит один или несколько массивов строк, необходимо ли перегружать операторы? )?
Darja
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 31
18.06.2012, 19:01  [ТС] #3
Класс содержит несколько массивов строк! Все нужно делать по условию! (там все написано ))))
Root2x
12 / 12 / 0
Регистрация: 21.05.2012
Сообщений: 52
18.06.2012, 19:31 #4
Скажите какой тип должны иметь строки? ( char*, wchar_t*, string )

P.S. В принципе можно воспользоваться вектором vector<string>
Darja
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 31
18.06.2012, 23:15  [ТС] #5
Ой,даже не знаю.. как будет лучше!
Root2x
12 / 12 / 0
Регистрация: 21.05.2012
Сообщений: 52
19.06.2012, 02:44 #6
В принципе вот. Создан класс имеющий динамический массив строк, перегружены пара операторов. И несколько вспомогательных функций. По сути это лишь оболочка над классом vector.
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
#include <iostream>
#include <vector>
#include <string>
 
#define STOP int _stop; cin>> _stop;
 
using namespace std;
 
typedef unsigned int _uint;
 
class AString
{
public:
    AString();
    AString( _uint );
    virtual ~AString();
 
    string* get_ptr( _uint );
    void clear();
    void resize( _uint );
    _uint size();
 
    string& operator [] ( _uint );
    void    operator = ( AString );
    AString operator + ( AString );
    AString operator += ( AString );
 
protected:
    vector<string> Array;
};
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
#include "main.hpp"
 
AString::AString()
{
    Array.resize( 2 );
}
 
AString::AString( _uint Size )
{
    Array.resize( Size );
}
 
AString::~AString()
{
    Array.clear();
}
 
string* AString::get_ptr( _uint Index )
{
    return &Array[Index];
}
 
void AString::clear()
{
    Array.clear();
}
 
void AString::resize( _uint Size )
{
    Array.resize( Size );
}
 
_uint AString::size()
{
    return Array.size();
}
 
string& AString::operator [] ( _uint Number )
{
    return Array[Number];
}
 
void AString::operator = ( AString Operand )
{
    _uint i = 0;
 
    Array.resize( Operand.size() > this->Array.size() ? Operand.size() : this->Array.size() );
 
    while( i < ( Operand.size() > this->Array.size() ? this->Array.size() : Operand.size() ) )
    {
        this->Array[i] = Operand[i];
        ++i;
    }
}
 
AString AString::operator + ( AString Operand )
{
    _uint i = 0;
    AString TSArray( Operand.size() > this->Array.size() ? Operand.size() : this->Array.size() );
 
    while( i < ( Operand.size() > this->Array.size() ? this->Array.size() : Operand.size() ) )
    {
        TSArray[i] = this->Array[i] + Operand[i];
        ++i;
    }
 
    return TSArray;
}
 
AString AString::operator += ( AString Operand )
{
    _uint i = 0;
 
    Array.resize( Operand.size() > this->Array.size() ? Operand.size() : this->Array.size() );
 
    while( i < ( Operand.size() > this->Array.size() ? this->Array.size() : Operand.size() ) )
    {
        this->Array[i] += Operand[i];
        ++i;
    }
 
    return *this;
}
 
int main()
{
    AString NSA( 1 ), NSA_2( 2 ), NSA_3( 3 );
 
    NSA[0] = "This is Sparta";
    NSA_2[0] = "This is Russia";
    NSA_3[0] = "This is Good";
 
    cout<< "NSA[0]: " << NSA[0] <<endl;
    cout<< "NSA_2[0]: " << NSA_2[0] <<endl;
    cout<< "NSA_3[0]: " << NSA_3[0] <<endl;
 
    NSA += NSA_3;
    NSA_3 = NSA + NSA_2;
 
    cout<< "NSA + NSA_2: " << NSA_3[0] <<endl;
    cout<< "NSA + NSA_3: " << NSA[0] <<endl;
    cout<< "Adress NSA[0]: " << NSA.get_ptr( 0 ) <<endl;
    cout<< "NSA Size: " << NSA.size() <<endl;
 
    STOP
    return 0;
}
Darja
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 31
19.06.2012, 11:02  [ТС] #7
Спасибо!)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2012, 11:02
Привет! Вот еще темы с ответами:

Составить описание класса для определения одномерных массивов целых чисел (векторов) - C++
Здравствуйте, уважаемые программисты! Не так давно я начал изучать язык С++. Есть задание: Составить описание класса для определения...

Описание класса: определение одномерных массивов - C++
Составить описание класса для определения одномерных массивов строк фиксированной длины. Предусмотреть возможность обращения к отдельным...

Класс одномерных массивов строк - C++
Составить описание класса одномерных массивов строк,каждая строка которых задается длиной и указателем на выделенную для нее память....

Составить программы сортировки одномерных массивов - C++
Сортировка выбором и шейкерная сортировка


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.06.2012, 11:02
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru