![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Vector ProxiesBoost , ,
|
Parameter | Description | Default |
---|---|---|
<V > |
Тип векторной ссылки. |
Если указанный диапазон выходит за пределы индексного диапазона вектора, то<vector_range
>не является хорошо сформированной векторной экспрессией. То есть доступ к элементу, находящемуся вне индексного диапазона вектора,неопределён.
Нет, кроме тех, которые налагаются требованиямиВекторной экспрессии.
<vector_expression<vector_range<V> >
>
Member | Description |
---|---|
<vector_range (vector_type &data, const range
&r) > |
Построение подвектора. |
<size_type start () const > |
Возвращает начало подвектора. |
<size_type size () const > |
Возвращает размер подвектора. |
<const_reference operator () (size_type i)
const > |
Возвращает значение<i >-го элемента. |
<reference operator () (size_type i) > |
Возвращает ссылку на<i >-й элемент. |
<const_reference operator [] (size_type i)
const > |
Возвращает значение<i >-го элемента. |
<reference operator [] (size_type i) > |
Возвращает ссылку на<i >-й элемент. |
<vector_range &operator = (const vector_range
&vr) > |
Оператор назначения. |
<vector_range &assign_temporary (vector_range
&vr) > |
Назначает временное. Может изменять векторный диапазон<vr >. |
<template<class AE> > |
Оператор расширенного назначения. |
<template<class AE> > |
Назначает векторное выражение на подвектор. Левая и правая стороны задания должны быть независимыми. |
<template<class AE> > |
Вычисленный оператор назначения. Добавляет векторное выражение к подвектору. |
<template<class AE> > |
Добавляет векторное выражение к подвектору. Левая и правая стороны задания должны быть независимыми. |
<template<class AE> > |
Вычисленный оператор назначения. Вычитает векторное выражение из подвектора. |
<template<class AE> > |
Вычитает векторное выражение из подвектора. Левая и правая стороны задания должны быть независимыми. |
<template<class AT> > |
Вычисленный оператор назначения. Умножает суб-вектор на скаляр. |
<template<class AT> > |
Вычисленный оператор назначения. Разделяет подвектор через скаляр. |
<void swap (vector_range &vr) > |
Перемещает содержимое подвекторов. |
<const_iterator begin () const > |
<const_iterator >Возвращается, указывая на начало<vector_range >. |
<const_iterator end () const > |
<const_iterator >Возвращается, указывая на конец<vector_range >. |
<iterator begin () > |
Возвращает<iterator >, указывая на начало<vector_range >. |
<iterator end () > |
Возвращается<iterator >, указывая на конец<vector_range >. |
<const_reverse_iterator rbegin () const > |
Возвращает<const_reverse_iterator >, указывая на начало обратного<vector_range >. |
<const_reverse_iterator rend () const > |
Возвращает<const_reverse_iterator >, указывая на конец обратного<vector_range >. |
<reverse_iterator rbegin () > |
Возвращается<reverse_iterator >, указывая на начало обратного<vector_range >. |
<reverse_iterator rend () > |
Возвращает<reverse_iterator >, указывая на конец обратного<vector_range >. |
Свободные<subrange
>функции поддерживают построение векторных диапазонов.
template<class V>
vector_range<V> subrange (V &data,
V::size_type start, V::size_type stop);
template<class V>
const vector_range<const V> subrange (const V &data,
V::size_type start, V::size_type stop);
Свободные<project
>функции поддерживают построение векторных диапазонов. Существующие<matrix_range
>могут быть составлены с дальнейшим диапазоном. Полученный диапазон вычисляется с использованием функции<compose
>этого существующего диапазона.
template<class V>
vector_range<V> project (V &data, const range &r);
template<class V>
const vector_range<const V> project (const V &data, const range &r);
template<class V>
vector_range<V> project (vector_range<V> &data, const range &r);
template<class V>
const vector_range<V> project (const vector_range<V> &data, const range &r);
Определяется в заголовке vector_proxy.hpp.
V
является модельювекторной экспрессии.Линейный в зависимости от размера диапазона.
#include <boost/numeric/ublas/vector.hpp> #include <boost/numeric/ublas/vector_proxy.hpp> #include <boost/numeric/ublas/io.hpp> int main () { using namespace boost::numeric::ublas; vector<double> v (3); for (int i = 0; i < 3; ++ i) project (v, range (0, 3)) (i) = i; std::cout << project (v, range (0, 3)) << std::endl; }
Класс шаблонов<vector_slice<V>
>позволяет адресовать кусочек вектора.
#include <boost/numeric/ublas/vector.hpp> #include <boost/numeric/ublas/vector_proxy.hpp> #include <boost/numeric/ublas/io.hpp> int main () { using namespace boost::numeric::ublas; vector<double> v (3); vector_slice<vector<double> > vs (v, slice (0, 1, 3)); for (unsigned i = 0; i < vs.size (); ++ i) vs (i) = i; std::cout << vs << std::endl; }
Определяется в заголовке vector_proxy.hpp.
Parameter | Description | Default |
---|---|---|
<V > |
Тип векторной ссылки. |
Если указанный срез выходит за пределы индексного диапазона вектора, то<vector_slice
>не является хорошо сформированной векторной экспрессией. То есть доступ к элементу, находящемуся вне индексного диапазона вектора,неопределён.
Нет, кроме тех, которые налагаются требованиямиВекторной экспрессии.
<vector_expression<vector_slice<V> >
>
Member | Description |
---|---|
<vector_slice (vector_type &data, const slice
&s) > |
Построение подвектора. |
<size_type size () const > |
Возвращает размер подвектора. |
<const_reference operator () (size_type i)
const > |
Возвращает значение<i >-го элемента. |
<reference operator () (size_type i) > |
Возвращает ссылку на<i >-й элемент. |
<const_reference operator [] (size_type i)
const > |
Возвращает значение<i >-го элемента. |
<reference operator [] (size_type i) > |
Возвращает ссылку на<i >-й элемент. |
<vector_slice &operator = (const vector_slice
&vs) > |
Оператор назначения. |
<vector_slice &assign_temporary (vector_slice
&vs) > |
Назначает временное. Может изменить векторный срез<vs >. |
<template<class AE> > |
Оператор расширенного назначения. |
<template<class AE> > |
Назначает векторное выражение на подвектор. Левая и правая стороны задания должны быть независимыми. |
<template<class AE> > |
Вычисленный оператор назначения. Добавляет векторное выражение к подвектору. |
<template<class AE> > |
Добавляет векторное выражение к подвектору. Левая и правая стороны задания должны быть независимыми. |
<template<class AE> > |
Вычисленный оператор назначения. Вычитает векторное выражение из подвектора. |
<template<class AE> > |
Вычитает векторное выражение из подвектора. Левая и правая стороны задания должны быть независимыми. |
<template<class AT> > |
Вычисленный оператор назначения. Умножает суб-вектор на скаляр. |
<template<class AT> > |
Вычисленный оператор назначения. Разделяет подвектор через скаляр. |
<void swap (vector_slice &vs) > |
Перемещает содержимое подвекторов. |
<const_iterator begin () const > |
<const_iterator >, что указывает на начало<vector_slice >. |
<const_iterator end () const > |
<const_iterator >Возвращается, указывая на конец<vector_slice >. |
<iterator begin () > |
Возвращает<iterator >, указывая на начало<vector_slice >. |
<iterator end () > |
Возвращает<iterator >, указывая на конец<vector_slice >. |
<const_reverse_iterator rbegin () const > |
Возвращает<const_reverse_iterator >, указывая на начало обратного<vector_slice >. |
<const_reverse_iterator rend () const > |
<const_reverse_iterator >возвращает, указывая на конец обратного<vector_slice >. |
<reverse_iterator rbegin () > |
Возвращает<reverse_iterator >, указывая на начало обратного<vector_slice >. |
<reverse_iterator rend () > |
<reverse_iterator >, указывающий на конец обратного<vector_slice >. |
Свободные<subslice
>функции поддерживают конструкцию векторных срезов.
template<class V>
vector_slice<V> subslice (V &data,
V::size_type start, V::difference_type stride, V::size_type size);
template<class V>
const vector_slice<const V> subslice (const V &data,
V::size_type start, V::difference_type stride, V::size_type size);
Свободные<project
>функции поддерживают конструкцию векторных срезов. Существующие<vector_slice
>могут быть составлены с дальнейшим диапазоном или срезами. Полученный срез вычисляется с использованием функции<compose
>этого существующего среза.
template<class V>
vector_slice<V> project (V &data, const slice &s);
template<class V>
const vector_slice<const V> project (const V &data, const slice &s);
template<class V>
vector_slice<V> project (vector_slice<V> &data, const range &r);
template<class V>
const vector_slice<V> project (const vector_slice<V> &data, const range &r);
template<class V>
vector_slice<V> project (vector_slice<V> &data, const slice &s);
template<class V>
const vector_slice<V> project (const vector_slice<V> &data, const slice &s);
Определяется в заголовке vector_proxy.hpp.
V
является модельювекторной экспрессии.Линейный в зависимости от размера среза.
#include <boost/numeric/ublas/vector.hpp> #include <boost/numeric/ublas/vector_proxy.hpp> #include <boost/numeric/ublas/io.hpp> int main () { using namespace boost::numeric::ublas; vector<double> v (3); for (int i = 0; i < 3; ++ i) project (v, slice (0, 1, 3)) (i) = i; std::cout << project (v, slice (0, 1, 3)) << std::endl; }
Авторское право (©) 2000-2002 Йорг Уолтер, Матиас Кох
На использование, модификацию и распространение распространяется лицензия Boost Software License, Version 1.0. (См. сопроводительный файл LICENSE_1_0.txt или копию на) http://www.boost.org/LICENSE_1_0.txt.
Статья Vector Proxies раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: ::
реклама |