class DarkRaha extends com { // разработка приложений
            String a="Главная" b="Контакты" c="О сайте"
};

основы С++

STL

реализация STL
обзор
строки
потоки ввода/вывода
Форматирование ввода/вывода
Функции и методы потоков
Файловые потоки
класс vector
очередь
стек
отображения
итераторы
функциональные объекты
алгоритмы (1)
алгоритмы (2)
класс valarray

Справочник по C++ STL

Класс valarray

Данный шаблон класса реализует оптимизированный массив элементов для численных вычислений.

конструкторы

методы и операции valarray

Дополнительно для valarray перегружены стандартные операции. За исключением операций присвоения и индексации, смысл следующий. Над каждым элементом совершается соответствующая операция. Результаты каждой операции сохраняются в новом объекте valarray, который и возвращается как общий результат.

операция индексации

Операция индексации в valarray перегружена, позволяя в качестве индекса использовать классы селекторы slice и gslice или специализированные классы valarray:

Во всех этих случаях результатом индексации является массив особого типа. Ниже приведен список упомянутых вспомогательных классов:

пример


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

// вывод массива
void out(valarray<int> &v){
for(int i=0;i<v.size();i++)
    cout<<v[i]<<',';
cout<<endl<<"======================"<<endl;
}

int main(){
int a []= {1,2,3,4,5,6,7,8,9,10,
  11,12,13,14,15,16,17,18,19,20};

// инициализируем массивом
valarray<int> va(a,sizeof(a));

// копируем 5 элементов со второго
// через каждые 3 из va в va2
valarray<int> va2 = va[slice(2,5,3)];

// вывод элементов в va2
// результат: 3,6,9,12,15
out(va2);

// создаем массив маски
// маскируем 6 и 19 элементы
valarray<bool> mask (false,20);
mask[6]=true;
mask[19]=true;

// в MinGw если va2=va[mask], автоматически
// не изменяет размер va2
va2.resize(2,0);
va2=va[mask];
out(va2);

// вывод элементов в va2
// результат: 7, 20
valarray<int> va3=va[!mask];
out(va3);

// создаем массив индексов
size_t sel[]={5,12,17};
valarray<size_t>vsel(sel,3);

// делаем выборку по массиву индексов
// и выводим ее
// результат: 6,13,18
valarray<int> va4=va[vsel];
out(va4);

// тоже самое, что va4 *= 10;
// умножаем каждый элемент на 10
// результат: 60,130,180
va4 = va4*10;
out(va4);

return 0;
}

математические функции

Для класса valarray перегружены стандартные математические функции. Для каждого элемента вычисляется функция, а результаты сохраняются в новом векторе valarray, который и возвращается.


Рейтинг@Mail.ru