<valarray>
, operatory
operator!=
Sprawdza, czy odpowiednie elementy dwóch obiektów o równych rozmiarach valarray
są nierówne, czy też wszystkie elementy obiektu valarray
są nierówne do określonej wartości.
template <class Type>
valarray<bool>
operator!=(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<bool>
operator!=(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<bool>
operator!=(
const Type& left,
const valarray<Type>& right);
Parametry
left
valarray
Obiekt, którego elementy mają być testowane pod kątem nierówności względem innego valarray
obiektu lub wartości typu elementu do porównania z każdym elementem valarray
w obiekcie .
right
valarray
Obiekt, którego elementy mają być testowane pod kątem nierówności względem innego valarray
obiektu lub wartości typu elementu do porównania z każdym elementem valarray
w obiekcie .
Wartość zwracana
A valarray
wartości logicznych, z których każda jest:
true
jeśli odpowiednie elementy są nierówne.false
jeśli odpowiednie elementy są równe.
Uwagi
Pierwszy operator szablonu zwraca obiekt klasy valarray<bool>
, z których I
każdy ma wartość left[I] != right[I]
.
Drugi operator szablonu przechowuje left[I] != right
element .I
Trzeci operator szablonu przechowuje left != right[I]
element I
.
Przykład
// valarray_op_ne.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<bool> vaNE ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = -i;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = i;
for ( i = 0 ; i < 10 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL != vaR );
cout << "The element-by-element result of "
<< "the not equal comparison test is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 0 1 -2 3 -4 5 -6 7 -8 9 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 8 9 ).
The element-by-element result of the not equal comparison test is the
valarray: ( 0 0 1 0 1 0 1 0 1 0 ).
operator%
Uzyskuje pozostałą część dzielenia odpowiednich elementów dwóch obiektów o równym rozmiarze valarray
lub dzielenia przez określoną wartość lub dzielenia valarray
określonej wartości przez valarray
wartość .
template <class Type>
valarray<Type>
operator%(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator%(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator%(
const Type& left,
const valarray<Type>& right);
Parametry
left
Wartość lub valarray
która służy jako dywidenda, do której należy podzielić inną wartość lub valarray
wartość.
right
Wartość lub valarray
, która służy jako dzielnik i który dzieli inną wartość lub valarray
.
Wartość zwracana
Element valarray
, którego elementy są elementami mądre reszty left
podzielone przez right
.
Przykład
// valarray_op_rem.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 6 ), vaR ( 6 );
valarray<int> vaREM ( 6 );
for ( i = 0 ; i < 6 ; i += 2 )
vaL [ i ] = 53;
for ( i = 1 ; i < 6 ; i += 2 )
vaL [ i ] = -67;
for ( i = 0 ; i < 6 ; i++ )
vaR [ i ] = 3*i+1;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 6 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 6 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaREM = ( vaL % vaR );
cout << "The remainders from the element-by-element "
<< "division is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 6 ; i++ )
cout << vaREM [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 53 -67 53 -67 53 -67 ).
The initial Right valarray is: ( 1 4 7 10 13 16 ).
The remainders from the element-by-element division is the
valarray: ( 0 -3 4 -7 1 -3 ).
operator&
Uzyskuje bitowe wartości AND między odpowiednimi elementami dwóch obiektów o równym rozmiarze valarray
lub między a valarray
określoną wartością typu elementu.
template <class Type>
valarray<Type>
operator&(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator&(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator&(
const Type& left,
const valarray<Type>& right);
Parametry
left
Pierwszy z dwóch valarray
obiektów, których odpowiednie elementy mają być łączone z bitową wartością AND lub określoną wartością typu elementu, która ma być połączona bitowo AND z każdym elementem valarray
.
right
Drugi z dwóch valarray
obiektów, których odpowiednie elementy mają być łączone z bitowym elementem AND, lub określoną wartością typu elementu, które mają być łączone bitowo AND z każdym elementem valarray
.
Wartość zwracana
A valarray
, których elementy są elementami mądrą kombinacją bitowej operacji AND operacji left
i right
.
Uwagi
Operację bitową można używać tylko do manipulowania bitami w char
typach danych i int
typach danych i wariantach, a nie na float
typach danych , , double
long double
, , void
bool
lub innych, bardziej złożonych typach danych.
Bitowa tabela AND ma tę samą tabelę prawdy co logiczne AND, ale ma zastosowanie do typu danych na poziomie poszczególnych bitów. Element operator&&
ma zastosowanie na poziomie elementu, zliczając wszystkie wartości inne niżzerowe jako true
, a wynik jest wartościami valarray
logicznymi. Bitowe and operator&
, z kolei, może spowodować valarray
wartości inne niż 0 lub 1, w zależności od wyniku operacji bitowej.
Przykład
// valarray_op_bitand.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<int> vaBWA ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = 0;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = i+1;
for ( i = 0 ; i < 10 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaBWA = ( vaL & vaR );
cout << "The element-by-element result of "
<< "the bitwise operator & is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaBWA [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 0 2 0 4 0 6 0 8 0 10 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 8 9 ).
The element-by-element result of the bitwise operator & is the
valarray: ( 0 0 0 0 0 4 0 0 0 8 ).
operator&&
Uzyskuje wartość logiczną AND między odpowiednimi elementami dwóch obiektów o równym rozmiarze valarray
lub między a valarray
określoną wartością valarray
typu elementu.
template <class Type>
valarray<bool>
operator&&(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<bool>
operator&&(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<bool>
operator&&(
const Type& left,
const valarray<Type>& right);
Parametry
left
Pierwszy z dwóch valarray
obiektów, których odpowiednie elementy mają być łączone z logicznym AND, lub określoną wartością typu elementu do połączenia z każdym elementem valarray
elementu .
Prawy
Drugi z dwóch valarray
obiektów, których odpowiednie elementy mają być łączone z logicznym AND, lub określoną wartością typu elementu do połączenia z każdym elementem elementu valarray
.
Wartość zwracana
Element valarray
, którego elementy są typu bool
i są mądrą kombinacją logicznej left
operacji AND i right
.
Uwagi
Wartość logiczna AND operator&&
ma zastosowanie na poziomie elementu, zliczając wszystkie wartości inne niżzerowe jako true
, a wynik jest wartościami logicznymi valarray
. Bitowa wersja AND, operator&
z kolei, może spowodować valarray
wartości inne niż 0 lub 1, w zależności od wyniku operacji bitowej.
Przykład
// valarray_op_logand.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<bool> vaLAA ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = 0;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = i-1;
for ( i = 0 ; i < 10 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for (i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for (i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaLAA = ( vaL && vaR );
cout << "The element-by-element result of "
<< "the logical AND operator&& is the\n"
<< "valarray: ( ";
for (i = 0 ; i < 10 ; i++ )
cout << vaLAA [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 0 0 0 2 0 4 0 6 0 8 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 8 9 ).
The element-by-element result of the logical AND operator&& is the
valarray: ( 0 0 0 1 0 1 0 1 0 1 ).
operator>
Sprawdza, czy elementy jednego valarray
elementu są większe niż elementy o takim samym rozmiarze valarray
, czy też wszystkie elementy valarray
elementu są większe lub mniejsze niż określona wartość.
template <class Type>
valarray<bool>
operator>(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<bool>
operator>(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<bool>
operator>(
const Type& left,
const valarray<Type>& right);
Parametry
left
Pierwszy z dwóch valarray
obiektów, których elementy mają być porównywane, lub określona wartość do porównania z każdym elementem valarray
obiektu .
right
Drugi z dwóch valarray
obiektów, których elementy mają być porównywane, lub określona wartość do porównania z każdym elementem valarray
elementu .
Wartość zwracana
A valarray
wartości logicznych, z których każda jest:
true
left
jeśli element lub wartość jest większa niż odpowiadający muright
element lub wartość.false
left
jeśli element lub wartość nie jest większa niż odpowiedniright
element lub wartość.
Uwagi
Jeśli liczba elementów w dwóch valarray
obiektach nie jest równa, wynik jest niezdefiniowany.
Przykład
// valarray_op_gt.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<bool> vaNE ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = -i;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = i;
for ( i = 0 ; i < 10 ; i++ )
vaR [ i ] = i - 1;
cout << "The initial Left valarray is: ( ";
for (i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL > vaR );
cout << "The element-by-element result of "
<< "the greater than comparison test is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 0 1 -2 3 -4 5 -6 7 -8 9 ).
The initial Right valarray is: ( -1 0 1 2 3 4 5 6 7 8 ).
The element-by-element result of the greater than comparison test is the
valarray: ( 1 1 0 1 0 1 0 1 0 1 ).
operator>=
Sprawdza, czy elementy jednego valarray
elementu są większe lub równe elementom o takim samym rozmiarze valarray
, czy też wszystkie elementy valarray
elementu są większe lub równe lub mniejsze lub równe określonej wartości.
template <class Type>
valarray<bool>
operator>=(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<bool>
operator>=(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<bool>
operator>=(
const Type& left,
const valarray<Type>& right);
Parametry
left
Pierwszy z dwóch valarray
obiektów, których elementy mają być porównywane, lub określona wartość do porównania z każdym elementem valarray
obiektu .
right
Drugi z dwóch valarray
obiektów, których elementy mają być porównywane, lub określona wartość do porównania z każdym elementem valarray
elementu .
Wartość zwracana
A valarray
wartości logicznych, z których każda jest:
true
left
jeśli element lub wartość jest większa lub równa odpowiadającemu muright
elementowi lub wartości.false
left
jeśli element lub wartość jest mniejsza niż odpowiedniright
element lub wartość.
Uwagi
Jeśli liczba elementów w dwóch valarray
obiektach nie jest równa, wynik jest niezdefiniowany.
Przykład
// valarray_op_ge.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<bool> vaNE ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = -i;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = i;
for ( i = 0 ; i < 10 ; i++ )
vaR [ i ] = i - 1;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL >= vaR );
cout << "The element-by-element result of "
<< "the greater than or equal test is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 0 1 -2 3 -4 5 -6 7 -8 9 ).
The initial Right valarray is: ( -1 0 1 2 3 4 5 6 7 8 ).
The element-by-element result of the greater than or equal test is the
valarray: ( 1 1 0 1 0 1 0 1 0 1 ).
operator>>
Przesuwa bity w prawo dla każdego elementu valarray
określonej liczby pozycji lub przez liczbę elementów mądry określoną przez sekundę valarray
.
template <class Type>
valarray<Type>
operator>>(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator>>(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator>>(
const Type& left,
const valarray<Type>& right);
Parametry
left
Wartość, która ma zostać przesunięta lub valarray
których elementy mają zostać przesunięte.
right
Wartość wskazująca ilość przesunięcia w prawo lub valarray
którego elementy wskazują na liczbę elementów z prawej strony.
Wartość zwracana
Element valarray
, którego elementy zostały przesunięte w prawo o określoną kwotę.
Uwagi
Podpisane numery mają swoje znaki zachowane.
Przykład
// valarray_op_rs.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 8 ), vaR ( 8 );
valarray<int> vaNE ( 8 );
for ( i = 0 ; i < 8 ; i += 2 )
vaL [ i ] = 64;
for ( i = 1 ; i < 8 ; i += 2 )
vaL [ i ] = -64;
for ( i = 0 ; i < 8 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL >> vaR );
cout << "The element-by-element result of "
<< "the right shift is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 64 -64 64 -64 64 -64 64 -64 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 ).
The element-by-element result of the right shift is the
valarray: ( 64 -32 16 -8 4 -2 1 -1 ).
operator<
Sprawdza, czy elementy jednego valarray
są mniejsze niż elementy o takim samym rozmiarze valarray
, czy też wszystkie elementy valarray
elementu są większe lub mniejsze niż określona wartość.
template <class Type>
valarray<bool>
operator<(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<bool>
operator<(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<bool>
operator<(
const Type& left,
const valarray<Type>& right);
Parametry
left
Pierwszy z dwóch valarray
obiektów, których elementy mają być porównywane, lub określona wartość do porównania z każdym elementem valarray
obiektu .
right
Drugi z dwóch valarray
obiektów, których elementy mają być porównywane, lub określona wartość do porównania z każdym elementem valarray
elementu .
Wartość zwracana
A valarray
wartości logicznych, z których każda jest:
true
left
jeśli element lub wartość jest mniejsza niż odpowiedniright
element lub wartość.false
left
jeśli element lub wartość nie jest mniejsza niż odpowiedniright
element lub wartość.
Uwagi
Jeśli liczba elementów w dwóch valarray
obiektach nie jest równa, wynik jest niezdefiniowany.
Przykład
// valarray_op_lt.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<bool> vaNE ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = -i;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = i;
for ( i = 0 ; i < 10 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL < vaR );
cout << "The element-by-element result of "
<< "the less-than comparison test is the\n"
<< "valarray: ( ";
for (i = 0 ; i < 10 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 0 1 -2 3 -4 5 -6 7 -8 9 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 8 9 ).
The element-by-element result of the less-than comparison test is the
valarray: ( 0 0 1 0 1 0 1 0 1 0 ).
operator<=
Sprawdza, czy elementy jednego valarray
są mniejsze lub równe elementom o takim samym rozmiarze valarray
, czy też wszystkie elementy elementu valarray
są większe lub równe lub mniejsze lub równe określonej wartości.
template <class Type>
valarray<bool>
operator<=(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<bool>
operator<=(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<bool>
operator<=(
const Type& left,
const valarray<Type>& right);
Parametry
left
Pierwszy z dwóch valarray
obiektów, których elementy mają być porównywane, lub określona wartość do porównania z każdym elementem valarray
obiektu .
right
Drugi z dwóch valarray
obiektów, których elementy mają być porównywane, lub określona wartość do porównania z każdym elementem valarray
elementu .
Wartość zwracana
A valarray
wartości logicznych, z których każda jest:
true
left
jeśli element lub wartość jest mniejsza lub równa odpowiadającemu muright
elementowi lub wartości.false
left
jeśli element lub wartość jest większa niż odpowiadający muright
element lub wartość.
Uwagi
Jeśli liczba elementów w dwóch valarray
obiektach nie jest równa, wynik jest niezdefiniowany.
Przykład
// valarray_op_le.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<bool> vaNE ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = -i;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = i;
for ( i = 0 ; i < 10 ; i++ )
vaR [ i ] = i - 1;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL <= vaR );
cout << "The element-by-element result of "
<< "the less than or equal test is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 0 1 -2 3 -4 5 -6 7 -8 9 ).
The initial Right valarray is: ( -1 0 1 2 3 4 5 6 7 8 ).
The element-by-element result of the less than or equal test is the
valarray: ( 0 0 1 0 1 0 1 0 1 0 ).
operator<<
Lewe przesunięcie bitów dla każdego elementu valarray
określonej liczby pozycji lub przez liczbę elementów mądry określonej przez sekundę valarray
.
template <class Type>
valarray<Type>
operator<<(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator<<(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator<<(
const Type& left,
const valarray<Type>& right);
Parametry
left
Wartość, która ma zostać przesunięta lub valarray
których elementy mają zostać przesunięte.
right
Wartość wskazująca ilość przesunięcia w lewo lub valarray
, których elementy wskazują mądry element przesunięcia w lewo.
Wartość zwracana
Element valarray
, którego elementy zostały przesunięte w lewo o określoną kwotę.
Uwagi
Podpisane numery mają swoje znaki zachowane.
Przykład
// valarray_op_ls.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 8 ), vaR ( 8 );
valarray<int> vaNE ( 8 );
for ( i = 0 ; i < 8 ; i += 2 )
vaL [ i ] = 1;
for ( i = 1 ; i < 8 ; i += 2 )
vaL [ i ] = -1;
for ( i = 0 ; i < 8 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL << vaR );
cout << "The element-by-element result of "
<< "the left shift is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 1 -1 1 -1 1 -1 1 -1 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 ).
The element-by-element result of the left shift is the
valarray: ( 1 -2 4 -8 16 -32 64 -128 ).
operator*
Uzyskuje produkt mądry element między odpowiednimi elementami dwóch obiektów o równym rozmiarze valarray
lub między wartością a valarray
określoną.
template <class Type>
valarray<Type>
operator*(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator*(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator*(
const Type& left,
const valarray<Type>& right);
Parametry
left
Pierwszy z dwóch valarray
obiektów, których elementy mają zostać pomnożone, lub określona wartość, która ma zostać pomnożona z każdym elementem valarray
obiektu .
right
Druga z dwóch valarray
obiektów, których elementy mają być mnożone, lub określona wartość, która ma zostać pomnożona z każdym elementem valarray
obiektu .
Wartość zwracana
A valarray
, których elementy są elementami mądry produkt i left
right
.
Przykład
// valarray_op_eprod.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 8 ), vaR ( 8 );
valarray<int> vaNE ( 8 );
for ( i = 0 ; i < 8 ; i += 2 )
vaL [ i ] = 2;
for ( i = 1 ; i < 8 ; i += 2 )
vaL [ i ] = -1;
for ( i = 0 ; i < 8 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for (i = 0 ; i < 8 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for (i = 0 ; i < 8 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL * vaR );
cout << "The element-by-element result of "
<< "the multiplication is the\n"
<< "valarray: ( ";
for (i = 0 ; i < 8 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 2 -1 2 -1 2 -1 2 -1 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 ).
The element-by-element result of the multiplication is the
valarray: ( 0 -1 4 -3 8 -5 12 -7 ).
operator+
Uzyskuje sumę mądry elementów między odpowiednimi elementami dwóch obiektów o równych rozmiarach valarray
lub między a valarray
określoną wartością.
template <class Type>
valarray<Type>
operator+(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator+(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator+(
const Type& left,
const valarray<Type>& right);
Parametry
left
Pierwszy z dwóch valarray
obiektów, których elementy mają zostać dodane, lub określona wartość do dodania z każdym elementem obiektu valarray
.
right
Drugi z dwóch valarray
obiektów, których elementy mają zostać dodane, lub określona wartość do dodania z każdym elementem valarray
obiektu .
Wartość zwracana
Element valarray
, którego elementy są sumą left
elementów i right
.
Przykład
// valarray_op_esum.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 8 ), vaR ( 8 );
valarray<int> vaNE ( 8 );
for ( i = 0 ; i < 8 ; i += 2 )
vaL [ i ] = 2;
for ( i = 1 ; i < 8 ; i += 2 )
vaL [ i ] = -1;
for ( i = 0 ; i < 8 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL + vaR );
cout << "The element-by-element result of "
<< "the sum is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 2 -1 2 -1 2 -1 2 -1 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 ).
The element-by-element result of the sum is the
valarray: ( 2 0 4 2 6 4 8 6 ).
operator-
Uzyskuje mądry różnicę między odpowiednimi elementami dwóch obiektów o równych rozmiarach valarray
lub między a valarray
określoną wartością.
template <class Type>
valarray<Type>
operator-(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator-(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator-(
const Type& left,
const valarray<Type>& right);
Parametry
left
Wartość lub valarray
która służy jako minuend, wartość, z której mają być odejmowane inne wartości lub valarray
obiekty w tworzeniu różnicy.
right
Wartość lub valarray
która służy jako odejmowana, wartość, która ma zostać odejmowana od innych wartości lub valarray
obiektów tworząc różnicę.
Wartość zwracana
Element valarray
, którego elementy są mądrą left
różnicą elementów i right
.
Uwagi
Terminologia arytmetyczna używana podczas opisywania odejmowania:
difference = minuend - subtrahend
Przykład
// valarray_op_ediff.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 8 ), vaR ( 8 );
valarray<int> vaNE ( 8 );
for ( i = 0 ; i < 8 ; i += 2 )
vaL [ i ] = 10;
for ( i = 1 ; i < 8 ; i += 2 )
vaL [ i ] = 0;
for ( i = 0 ; i < 8 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL - vaR );
cout << "The element-by-element result of "
<< "the difference is the\n"
<< "valarray: ( ";
for (i = 0 ; i < 8 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 10 0 10 0 10 0 10 0 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 ).
The element-by-element result of the difference is the
valarray: ( 10 -1 8 -3 6 -5 4 -7 ).
operator/
Uzyskuje iloraz mądry elementu między odpowiednimi elementami dwóch obiektów o równym rozmiarze valarray
lub między a valarray
określoną wartością.
template <class Type>
valarray<Type>
operator/(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator/(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator/(
const Type& left,
const valarray<Type>& right);
Parametry
left
Wartość lub valarray
która służy jako dywidenda, do której należy podzielić inną wartość lub valarray
jest podzielona w tworzeniu ilorazu.
right
Wartość lub valarray
, która służy jako dzielnik, i która dzieli inną wartość lub valarray
tworząc iloraz.
Wartość zwracana
Element valarray
, którego elementy są ilorazem mądrym dzielenia left
przez right
element .
Uwagi
Terminologia arytmetyczna używana podczas opisywania podziału:
quotient = dywidenda / dzielnika
Przykład
// valarray_op_equo.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<double> vaL ( 6 ), vaR ( 6 );
valarray<double> vaNE ( 6 );
for ( i = 0 ; i < 6 ; i += 2 )
vaL [ i ] = 100;
for ( i = 1 ; i < 6 ; i += 2 )
vaL [ i ] = -100;
for ( i = 0 ; i < 6 ; i++ )
vaR [ i ] = 2*i;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 6 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 6 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL / vaR );
cout << "The element-by-element result of "
<< "the quotient is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 6 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 100 -100 100 -100 100 -100 ).
The initial Right valarray is: ( 0 2 4 6 8 10 ).
The element-by-element result of the quotient is the
valarray: ( inf -50 25 -16.6667 12.5 -10 ).
operator==
Sprawdza, czy odpowiednie elementy dwóch obiektów o równym rozmiarze valarray
są równe, czy też wszystkie elementy elementu valarray
są równe określonej wartości.
template <class Type>
valarray<bool>
operator==(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<bool>
operator==(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<bool>
operator==(
const Type& left,
const valarray<Type>& right);
Parametry
left
Pierwszy z dwóch valarray
obiektów, których elementy mają być testowane pod kątem równości, lub określona wartość do porównania z każdym valarray
elementem.
right
Drugi z dwóch valarray
obiektów, których elementy mają być testowane pod kątem równości, lub określona wartość do porównania z każdym valarray
elementem.
Wartość zwracana
A valarray
wartości logicznych, z których każda jest:
true
jeśli odpowiednie elementy są równe.false
jeśli odpowiednie elementy nie są równe.
Uwagi
Pierwszy operator szablonu zwraca obiekt klasy valarray<bool>
, z których I
każdy ma wartość left[I] == right[I]
. Drugi operator szablonu przechowuje left[I] == right
element .I
Trzeci operator szablonu przechowuje left == right[I]
element I
.
Przykład
// valarray_op_eq.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<bool> vaNE ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = -i;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = i;
for ( i = 0 ; i < 10 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for (i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL == vaR );
cout << "The element-by-element result of "
<< "the equality comparison test is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 0 1 -2 3 -4 5 -6 7 -8 9 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 8 9 ).
The element-by-element result of the equality comparison test is the
valarray: ( 1 1 0 1 0 1 0 1 0 1 ).
operator^
Uzyskuje bitowo wyłączny OR (XOR) między odpowiednimi elementami dwóch obiektów o równym rozmiarze valarray
lub między a valarray
określoną wartością typu elementu.
template <class Type>
valarray<Type>
operator^(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator^(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator^(
const Type& left,
const valarray<Type>& right);
Parametry
left
Pierwszy z dwóch valarray
obiektów, których odpowiednie elementy mają być łączone z bitowym XOR lub określoną wartością typu elementu, które mają być łączone przez bitowy XOR z każdym elementem valarray
.
right
Drugi z dwóch valarray
obiektów, których odpowiednie elementy mają być łączone z bitowym XOR lub określoną wartością typu elementu, które mają być łączone przez bitowy XOR z każdym elementem valarray
.
Wartość zwracana
Element valarray
, którego elementy są elementami mądre kombinacji bitowej operacji XOR operacji left
i right
.
Uwagi
Operację bitową można używać tylko do manipulowania bitami w char
typach danych i int
typach danych i wariantach, a nie na float
typach danych , , double
long double
, , void
bool
lub innych, bardziej złożonych typach danych.
Bitowe wyłączne OR (XOR) ma następujące semantyki: Biorąc pod uwagę bity b1 i b2, b1 XOR b2 jest 1, jeśli dokładnie jeden z bitów wynosi 1; 0, jeśli oba bity są 0 lub jeśli oba bity są 1.
Przykład
// valarray_op_xor.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<int> vaLAA ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = 1;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = 0;
for ( i = 0 ; i < 10 ; i += 3 )
vaR [ i ] = i;
for ( i = 1 ; i < 10 ; i += 3 )
vaR [ i ] = i-1;
for ( i = 2 ; i < 10 ; i += 3 )
vaR [ i ] = i-1;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaLAA = ( vaL ^ vaR );
cout << "The element-by-element result of "
<< "the bitwise XOR operator^ is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaLAA [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 1 0 1 0 1 0 1 0 1 0 ).
The initial Right valarray is: ( 0 0 1 3 3 4 6 6 7 9 ).
The element-by-element result of the bitwise XOR operator^ is the
valarray: ( 1 0 0 3 2 4 7 6 6 9 ).
operator|
Uzyskuje bitowe OR między odpowiednimi elementami dwóch obiektów o równych rozmiarach valarray
lub między a valarray
określoną wartością typu elementu.
template <class Type>
valarray<Type>
operator|(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator|(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator|(
const Type& left,
const valarray<Type>& right);
Parametry
left
Pierwszy z dwóch valarray
obiektów, których odpowiednie elementy mają być łączone z bitowym OR lub określoną wartością typu elementu, które mają być łączone bitowo OR z każdym elementem valarray
.
right
Drugi z dwóch valarray
obiektów, których odpowiednie elementy mają być łączone z bitowym OR lub określoną wartością typu elementu, które mają być połączone bitowo OR z każdym elementem valarray
.
Wartość zwracana
Element valarray
, którego elementy są elementami mądrą kombinacją bitowej operacji OR operacji left
i right
.
Uwagi
Operację bitową można używać tylko do manipulowania bitami w char
typach danych i int
typach danych i wariantach, a nie na float
typach danych , , double
long double
, , void
bool
lub innych, bardziej złożonych typach danych.
Bitowa tabela OR ma tę samą tabelę prawdy co logiczny OR, ale ma zastosowanie do typu danych na poziomie poszczególnych bitów. Biorąc pod uwagę bity b1 i b2, b1 LUB b2 jest 1, jeśli co najmniej jeden z bitów wynosi 1, lub 0, jeśli oba bity są 0. Wartość logiczna OR operator||
ma zastosowanie na poziomie elementu, zliczając wszystkie wartości inne niżzerowe jako true
, a wynik jest wartościami valarray
logicznymi. Bitowe or operator|
, z kolei, może spowodować valarray
wartości inne niż 0 lub 1, w zależności od wyniku operacji bitowej.
Przykład
// valarray_op_bitor.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<int> vaLAA ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = 1;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = 0;
for ( i = 0 ; i < 10 ; i += 3 )
vaR [ i ] = i;
for ( i = 1 ; i < 10 ; i += 3 )
vaR [ i ] = i-1;
for ( i = 2 ; i < 10 ; i += 3 )
vaR [ i ] = i-1;
cout << "The initial Left valarray is: ( ";
for (i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for (i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaLAA = ( vaL | vaR );
cout << "The element-by-element result of "
<< "the bitwise OR operator| is the\n"
<< "valarray: ( ";
for (i = 0 ; i < 10 ; i++ )
cout << vaLAA [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 1 0 1 0 1 0 1 0 1 0 ).
The initial Right valarray is: ( 0 0 1 3 3 4 6 6 7 9 ).
The element-by-element result of the bitwise OR operator| is the
valarray: ( 1 0 1 3 3 4 7 6 7 9 ).
operator||
Uzyskuje wartość logiczną OR między odpowiednimi elementami dwóch obiektów o równym rozmiarze valarray
lub między a valarray
określoną wartością valarray
typu elementu.
template <class Type>
valarray<bool>
operator||(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<bool>
operator||(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<bool>
operator||(
const Type& left,
const valarray<Type>& right);
Parametry
left
Pierwszy z dwóch valarray
obiektów, których odpowiednie elementy mają być łączone z logicznym OR lub określoną wartością typu elementu, które mają być łączone z każdym elementem valarray
obiektu .
right
Drugi z dwóch valarray
obiektów, których odpowiednie elementy mają być łączone z logicznym OR lub określoną wartością typu elementu do połączenia z każdym elementem valarray
elementu .
Wartość zwracana
Element valarray
, którego elementy są typu bool
i są mądrą kombinacją logicznej operacji OR i left
right
.
Uwagi
Wartość logiczna OR operator||
ma zastosowanie na poziomie elementu, zliczając wszystkie wartości inne niżzerowe jako true
, a wynik jest wartościami valarray
logicznymi. Bitowa wersja OR, operator|
natomiast , może spowodować valarray
wartość inną niż 0 lub 1, w zależności od wyniku operacji bitowej.
Przykład
// valarray_op_logor.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<bool> vaLOR ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = 0;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = i-1;
for ( i = 0 ; i < 10 ; i += 3 )
vaR [ i ] = i;
for ( i = 1 ; i < 10 ; i += 3 )
vaR [ i ] = 0;
for ( i = 2 ; i < 10 ; i += 3 )
vaR [ i ] = 0;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaLOR = ( vaL || vaR );
cout << "The element-by-element result of "
<< "the logical OR operator|| is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaLOR [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 0 0 0 2 0 4 0 6 0 8 ).
The initial Right valarray is: ( 0 0 0 3 0 0 6 0 0 9 ).
The element-by-element result of the logical OR operator|| is the
valarray: ( 0 0 0 1 0 1 1 1 0 1 ).