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

Класс массив - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Отсортировать вектор строк http://www.cyberforum.ru/cpp-beginners/thread351605.html
Есть какой алгоритм стандартный или хотя-бы вспомогательный? Естественно я о строках типа string, или может стоит каким другим типом воспользоваться для сортировки, я подумывал о map, но там ведь пары будут храниться и сортировка идти по ключу... В общем хотелось бы услышать ваши предложения :)
C++ Заполнение вектора другим вектором Есть два уже созданных вектора v и v2, со следующим содержимым: vector<int> v = {5, 3, 1, 3, 5, 2, 5, 3, 1, 3, 5, 2, 5}; vector<int> v2 = {5, 3, 1, 3, 5, 2, 5}; В процессе работы программы необходимо очистить вектор v2 и заполнить его значениями вектора v с 1 по 4 элемент. Как это сделать более эффективно? http://www.cyberforum.ru/cpp-beginners/thread351601.html
C++ ошибка в коде (нужна помощь)
вот сам код: #include <iostream.h> void show__parameters (int a=1, int b=2, int c=3) { cout << "a" << a << " b " << b << " c " << c << endl; }
Книги по С++ C++
Люди извините за топой вопрос хотел спросить у вас какие вы книги посоветует по С++ для новичка
C++ Быстрая сортировка http://www.cyberforum.ru/cpp-beginners/thread351590.html
Задача: пользователь задает количество элементов массива (макс. - 500 000), вводит их, затем задает количество запросов (макс. - 10000) и сами запросы (целые числа). Программа на каждый запрос выдает ответ, содержит ли массив это число. Время выполнения поиска при макс. значениях кол-ва элементов и запросов желательно не должно превышать 1 сек. Для сортировки массива перед поиском решил...
C++ Даны интегралы. Сколько достаточно взять узлов, чтобы найти значение первого интеграла с точностью 0.001 помогите пожалуйста!!!! даны интегралы.Сколько достаточно взять узлов, чтобы найти значение первого интеграла с точностью 0.001:по формулам прямоугольников?по формулам трапеций? подробнее

Показать сообщение отдельно
Sick2
14 / 14 / 1
Регистрация: 26.11.2010
Сообщений: 235
14.09.2011, 22:37     Класс массив
В общем задание написать шаблон класса массив.
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
#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
 
template <typename X> class Array
{
    int size;
    X *arr;
public:
    Array();
    Array(int);
    void set(int);
    int getsize() const {return size;};
    friend ostream &operator<<(ostream &,const Array<X> &);
    friend istream &operator>>(istream &,const Array<X> &);
    int operator[](int i);
    bool operator==(const Array &);
    bool operator!=(const Array &);
    Array operator+(const Array &);
};
template <typename X> Array<X>::Array()
{
    
    size = 1;
    arr = new int [size];
    for(int i=0;i<size;i++)
    {
        arr[i]=0;
    };
};
template <typename X> Array<X>::Array(int n)
{
    size = n;
    arr = new int [size];
    for(int i=0;i<size;i++)
    {
        arr[i]=0;
    };
};
template <typename X> int Array<X>::operator[](int i)
{
    if(i<0 || i>size) cout<<"Vihod za granici"<<endl;
 
    else return arr[i];
};
 
template <typename X> bool Array<X>::operator==(const Array<X> &o)
{
    return (size==o.size);
};
 
template <typename X> bool Array<X>::operator!=(const Array<X> &o)
{
    return (size!=o.size);
};
 
template <typename X> Array<X> Array<X>::operator+(const Array<X> &o)
{
    Array <X> temp;
    temp.size = size + o.size;
    temp.arr = new int [temp.size];
    for(int i=0;i<size;i++)
    {
        temp.arr[i]=arr[i];
 
    };
    for(int i=0, k=size;i<o.size, k<temp.size;i++,k++)
    {
        temp.arr[k]=o.arr[i];
    };
    return temp;
 
};
template <typename X> ostream &operator<<(ostream &stream,const Array<X> &o)
{
    for(int i=0;i<o.size;i++)
    {
        stream<<o.arr[i]<<" ";
    }
    return stream;
};
 
template <typename X> istream &operator>>(istream &stream,const Array<X> &o)
{
    for(int i=0;i<o.size;i++)
    {
        stream>>o.arr[i];
    };
return stream;
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    Array <int> a(2),b(3),d(2),c;
 
    cin>>a>>b>>d;
    c=(a+b)+d;
    if(a==b)cout<<"a=b";
    else cout<<"!="<<endl;
    
    cout<<c;
    system("pause");
    return 0;
}
Накропал я этот класс. Но вот проблема: что-то жалуется на перегруженные операторы "<<" и ">>".
Сразу писал этот класс как не шаблонный, проблем не было, всё отлично работало. А вот с шаблонами не катит почему-то. Просьба помочь разобраться.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru