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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализация crc http://www.cyberforum.ru/cpp-beginners/thread607789.html
Здравствуйте. Пытаюсь написать алгоритм Используя полимональную арифметику. Опишу алогритм как понимаю.. Считываю исходный двоичный файл по одному байту в переменную unsigned int message.....
C++ Апроксимация линейной функции С++ люи помогите кто знает этот метод,и как его реализовать в с++ http://www.cyberforum.ru/cpp-beginners/thread607775.html
C++ Программирование ландшафта
Посоветуйте книги/статьи, где рассказано о программировании ландшафта (желательно с 0 и с примерами на C++).
<Template>. Ошибка компиляции C++
Пытаюсь сделать Темплате Array, который бы принимал класс Point. Объект класса Point состоит из 2х точек координаты x и y. Мне надо создавать объект динамически по заданию. Компилятор выдает след...
C++ Объясните пожалуйста что делает функция http://www.cyberforum.ru/cpp-beginners/thread607726.html
и если это какая то формула, то можно ссылку на неё int letterFromNumber(int number, int index, int n) { int num = number / (int)pow((double)n,index); return num % n; }
C++ inline функции vs инструкции inline функций Здравствуйте. Чтобы не писать повторно код, нужно использовать функции. Но если функции компактные, то их лучше делать inline функциями, т. к. inline функции быстрее обычных. Но как я понимаю, inline... подробнее

Показать сообщение отдельно
Root2x
12 / 12 / 0
Регистрация: 21.05.2012
Сообщений: 52
19.06.2012, 02:44
В принципе вот. Создан класс имеющий динамический массив строк, перегружены пара операторов. И несколько вспомогательных функций. По сути это лишь оболочка над классом 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;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru