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

Создание своего вектора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удалить из массива повторяющиеся элементы http://www.cyberforum.ru/cpp-beginners/thread86366.html
Удалить из массива повторяющиеся элементы.жду вашим решений
C++ Работа со строками, действия над словами Помогите пожалуйста! Даны две строки. Пусть n1 – число слов в первой строке, а n2 – во второй (n1<n2). Добавить в конец первой строки, последние n2-n1 слов второй строки. Строки вводи вручную с клавиатуры. http://www.cyberforum.ru/cpp-beginners/thread86363.html
C++ Строки, работа с файлами и массивами строк
Требуются срочная помощь :swoon: зачет через 2 часа... Не хватает 2х лаб... помогите люди добрые кто чем может :sorry: Лаба 1(строки): Дан текст, найти наибольшее количество идущих подряд букв. Нашел в инете аналог который считает кол-во пробелов, а нужно количество идущих подряд букв чтобы выводило (английских или русских не важно...) #include "stdafx.h"
Дана матрица размера M на N.Поменять местамистолбцы,содержащие минимальный и максимальные элементы матрицы. C++
Дана матрица размера M на N.Поменять местамистолбцы,содержащие минимальный и максимальные элементы матрицы.
C++ Двумерный массив http://www.cyberforum.ru/cpp-beginners/thread86331.html
Доброго времени суток! Помогите плиз с условием... не могу понять как сделать... Задачка: Дана прямоугольная матрица. Определить является ли заданная матрица симметричной относительно главной диагонали. Сделал чтобы размерность матрицы вводил пользователь и сам ручками заполнял ее поэлементно... Так же сделал вывод матрицы на экран... как доделать последнее условие? - Определить является ли...
C++ напишите программу на минимальный элемент массива по С Помогите решить задчу на С: Дано целое число N и набор из N целых чисел.Найти количество минимальных элементов из данного набора. подробнее

Показать сообщение отдельно
outoftime
║XLR8║
508 / 430 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
16.01.2010, 15:17  [ТС]     Создание своего вектора
ISergey, спасибо еще раз, пока что все норм, не могли бы вы помочь реализировать еще и операции сложения векторов и умножение вектора на число (перенос розрядов и все остальное смогу сам, мне только как перегрузить операторы *=, и +, *= уможение на число, + - сумирование векторов).

Добавлено через 2 минуты
вот что у меня есть пока:
NOTATION.CPP
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
#include <iostream>
#include <windows.h>
#include "vector.hpp"
 
#define FOR(i,a,b) for (int i(a), _n(b); i < _n; ++i)
 
//using namespace std;
 
//оголошення констант
const int size = 1000,              //максимальний розмір введених/отриманих данних
          tSleep = 1000,            //час затримки при виході
          base = 1000*1000*1000;    //кількість цифр в одному елементі
 
void Menu();
vector notation(int from, int to, vector key);
 
int main()
{
    Menu();
    return 0;
}
 
void Menu()
{
    while (1)
    {
        int from, to;
        char* s = new char[size];
/*        cout << "Press your orign notation:   " << endl;
        cin >> from;
        cout << "Press your desired notation: " << endl;
        cin >> to;
        cout <<  "Enter number: " << endl;
*/        
        printf("Press your orign notation:   \n");
        scanf("%d",&from);
        printf("Press your desired notation: \n");
        scanf("%d",&to);
        printf("Enter number: \n");
        scanf("%s",&s);
        
        vector in(size);
        FOR(i,0,size)
        {
            if (s[i] == '\n') break;
            in[i] = (int)s[i] - '0';
        }            
        
        vector out = notation(from, to, in);
        
        FOR(i,0,out.size())
            printf("%d",out[i]);
        printf("\n");
                    
        int de;
/*        cout << "1 - Exit\t\t2 - Continue\n";
        cin >> de;
*/
        printf("1 - Exit\t\t2 - Continue\n");
        scanf("%d",&de);
        if (de == 1)
        {
            //cout << "Exiting..";
            printf("Exiting..");
            Sleep(tSleep);
        }
    }
}
 
vector notation(int from, int to, vector key)
{
    vector res(size),
           base(size),
           ds(size);
    ds.push_back(0);
    for (int i(key.size()); i > -1; --i)
    {
        
    }
    base.push_back(1);
    FOR(i,0,key.size())
    return res;
}
и
VECTOR.HPP
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
class vector
{
public:
    vector(int &n): top(0), a(0), sz(n)
    {
         a = new int[n]; 
    }
    vector(const int &n): top(0), a(0), sz(n)
    { 
        a = new int[n]; 
    }
    ~vector()
    { 
        delete[] a; 
    }
    void push_back(int &n)
    {
        if (top == sz) return;
        a[top++] = n;
    }
    void push_back(int n)
    {
        if (top == sz) return;
        a[top++] = n;
    }
    int pop_back()
    {
        return a[--top];
    }
    int back()
    {
        return a[top-1];
    }
    bool empty()
    {
        return !top;
    }
    int size()
    {
        return sz;
    }
    int &operator[] (int &n) 
    { 
        return a[n]; 
    }
    vector &operator = (const vector &n)
    {
        if (&n == this) return *this;
        delete[] a;
        a = new int[n.top];
        for (int i = 0; i < n.top; ++i)
            a[i] = n.a[i];
        top = n.top;
        return *this;
    }
private:
    int* a,
         top,
         sz;
};


Добавлено через 6 минут
Цитата Сообщение от Rififi Посмотреть сообщение
bool empty() const { return !top; }
зачем использовать const ??
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru