Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Класс “ вектор в n-мерном пространстве” (http://forum.oszone.net/showthread.php?t=129868)

.::.DIMA.::. 26-01-2009 01:55 1019465

Класс “ вектор в n-мерном пространстве”
 
Решено

pva 26-01-2009 07:35 1019559

используй шаблон valarray, там уже всё определено. А если хочешь добавить методы - сделай производный от него класс или класс-контейнер.
Код:

#include <valarray>
#include <iterator>
#include <iostream>
using namespace std;

template <typename X>
ostream& operator<<(ostream& os, const valarray<X>& va)
{
    copy(&va[0], &va[va.size()], ostream_iterator<X>(os,"\t"));
    retrun os;
}

int main()
{
    valarray<double> a(1., 5); // 5-мерный вектор из единичек

    static const double b_data = {1., 2., 3., 4., 5.};
    valarray<double> b(b_data, 5); // 5-мерный вектор {1,2,3,4,5}

    cout << a << "\n"
    << b << "\n"
    << (a*2. + b*3.) << "\n"
    << (a*b) << "\n";

    a+=b;
}

пост предназначен для тех, кому _действительно_ необходимо реализовать вектор, а не лабу сделать

pva 27-01-2009 07:40 1020828

зайди в папку с заголовочными файлами твоего компилятора и сделай поиск по тексту valarray. Там и найдёшь исходники (шаблоны всегда в исходниках). Скорее всего файл называется *valarray*.*


Время: 18:21.

Время: 18:21.
© OSzone.net 2001-