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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализация crc http://www.cyberforum.ru/cpp-beginners/thread607789.html
Здравствуйте. Пытаюсь написать алгоритм Используя полимональную арифметику. Опишу алогритм как понимаю.. Считываю исходный двоичный файл по одному байту в переменную unsigned int message.. Исходное значение срс задаю нулевым. unsigned int crc = 0; Насколько я понимаю для байта проще всего использовать 8-и разрядный полином. data = message; переменную использую для проверки старшего...
C++ Апроксимация линейной функции С++ люи помогите кто знает этот метод,и как его реализовать в с++ http://www.cyberforum.ru/cpp-beginners/thread607775.html
C++ Программирование ландшафта
Посоветуйте книги/статьи, где рассказано о программировании ландшафта (желательно с 0 и с примерами на C++).
<Template>. Ошибка компиляции C++
Пытаюсь сделать Темплате Array, который бы принимал класс Point. Объект класса Point состоит из 2х точек координаты x и y. Мне надо создавать объект динамически по заданию. Компилятор выдает след ошибку. Код программы ниже. Пожалуйста, подскажите как мне надо переделать код. 1> TestArray.cpp 1>c:\all my\с++\ha level 6\solution\level 6\hp_4.2a\array.cpp(13): error C2065: 'm_data' :...
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 функции все равно работают медленнее, чем их инструкции, вставленные на место их вызова. Так ли это? И каким образом создаются локальные переменные 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;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru