operator==,!=,<,<=,>,>= (std::valarray)
|
Определено в заголовке
<valarray>
|
||
|
template
<
class
T
>
**Примечание:** Весь представленный код является C++ кодом и находится внутри тегов `
`, поэтому в соответствии с инструкциями он не был переведен. HTML-разметка и атрибуты сохранены в оригинальном виде.
std::
valarray
<
bool
>
operator
==
(
const
std::
valarray
<
T
>
&
lhs,
const
std::
valarray
<
T
>
&
rhs
)
;
|
(1) | |
|
template
<
class
T
>
std::
valarray
<
bool
>
operator
==
(
const
typename
std::
valarray
<
T
>
::
value_type
&
lhsv,
|
(2) | |
|
template
<
class
T
>
std::
valarray
<
bool
>
operator
==
(
const
std::
valarray
<
T
>
&
lhs,
|
(3) | |
| ` пусты, поэтому перевод не требуется. Структура HTML сохранена в оригинальном виде в соответствии с инструкциями.) |
Сравнивает каждое значение в числовом массиве с другим значением.
Поведение не определено, если size ( ) ! = v. size ( ) .
Содержание |
Параметры
| lhs, rhs | - | числовые массивы для сравнения |
| lhsv, rhsv | - | значения для сравнения с каждым элементом числового массива |
Возвращаемое значение
Числовой массив типа bool содержащий результаты сравнения соответствующих элементов.
Исключения
Может генерировать исключения, определяемые реализацией.
Примечания
Каждый из операторов может быть создан только при выполнении следующих требований:
-
-
Указанный оператор может быть применен к типу
T. - Результат может быть однозначно преобразован в bool .
-
Указанный оператор может быть применен к типу
Функция может быть реализована с возвращаемым типом, отличным от std::valarray . В этом случае, тип-замена обладает следующими свойствами:
-
- Предоставлены все const функции-члены std::valarray .
- std::valarray , std::slice_array , std::gslice_array , std::mask_array и std::indirect_array могут быть сконструированы из типа замены.
- Для каждой функции, принимающей const std:: valarray < T > & кроме begin() и end() (начиная с C++11) , должны быть добавлены идентичные функции, принимающие типы замены;
- Для каждой функции, принимающей два аргумента const std:: valarray < T > & , должны быть добавлены идентичные функции, принимающие все комбинации const std:: valarray < T > & и типов замены.
- Возвращаемый тип добавляет не более двух уровней шаблонной вложенности поверх наиболее глубоко вложенного типа аргумента.
Пример
#include <iostream> #include <valarray> int main() { // обнулить все отрицательные значения в valarray std::valarray<int> v = {1, -1, 0, -3, 10, -1, -2}; std::cout << "До: "; for (auto n : v) std::cout << n << ' '; std::cout << '\n'; v[v < 0] = 0; std::cout << "После: "; for (auto n : v) std::cout << n << ' '; std::cout << '\n'; // преобразовать результат valarray<bool> от == в одиночный bool std::valarray<int> a = {1, 2, 3}; std::valarray<int> b = {2, 4, 6}; std::cout << "2*a == b это " << std::boolalpha << (2 * a == b).min() << '\n'; }
Вывод:
До: 1 -1 0 -3 10 -1 -2 После: 1 0 0 0 10 0 0 2*a == b это true
Отчеты о дефектах
Следующие отчеты об изменениях в поведении, являющиеся дефектными, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 3074 | C++98 |
T
выводится как из скаляра, так и из
valarray
для
(2,3)
,
запрещая вызовы со смешанными типами |
выводить
T
только из
valarray
|