在线文档教程
C++
数字 | Numerics

std::valarray::operator[]

STD::valArray::Operator。[]

(1)
T operator const;(until C++11)
const T& operator const;(since C++11)
T& operator;(2)
std::valarray<T> operator const;(3)
std::slice_array<T> operator;(4)
std::valarray<T> operator const;(5)
std::gslice_array<T> operator;(6)
std::valarray<T> operator const;(7)
std::mask_array<T> operator;(8)
std::valarray<T> operator const;(9)
std::indirect_array<T> operator;(10)

检索数组的单个元素或部分。

const返回元素序列的重载会创建一个新的std::valarray对象。非-const重载包含对数组元素的引用的返回类。

参数

返回值

1,2%29A对相应元素的引用

3,5,7,9%29 Astd::valarray对象,该对象包含选定项的副本。

4,6,8,10%29相应的数据结构包含对选定项目的引用

例外

%280%29

前提条件

所选元素必须存在。

注记

  • 的适当值ij,下列属性为真:1%29(a[i] = q, a[i]) == q对一个非康涅斯特人来说a...2%29&a[i+j] == &a[i] + j这意味着valArray元素在内存中是相邻的。3%29&a[i] != &b[j]这适用于每一个对象。ab它们不是彼此的别名。这意味着元素中没有别名,并且可以使用该属性来执行某些类型的优化。

  • 引用在调整尺寸或者当数组被破坏时。

对于重载%283、5、7、9%29,可以使用不同于std::valarray在这种情况下,替换类型具有以下属性:

  • const成员职能std::valarray提供。

  • std::valarray,,,std::slice_array,,,std::gslice_array,,,std::mask_arraystd::indirect_array可以从替换类型构造。

  • 所有接受类型参数的函数conststd::valarray&begin()end()%28,因为C++14%29也应该接受替换类型。

  • 接受两个类型参数的所有函数conststd::valarray&应该接受每一个组合conststd::valarray&以及替代型。

  • 返回类型不会在最嵌套的参数类型上添加两个以上的模板嵌套级别。

注记

切片/掩码/间接索引访问不连锁:v[v==n][std::slice(0,5,2]= x;是一个错误,因为std::mask_array28%v[v==n]%29没有operator[]...

二次

#include <iostream> #include <valarray> int main() { std::valarray<int> data = {0,1,2,3,4,5,6,7,8,9}; std::cout << "Initial valarray: "; for(int n: data) std::cout << n << ' '; std::cout << '\n'; data[data > 5] = -1; // valarray<bool> overload of operator[] // the type of data>5 is std::valarray<bool> // the type of data[data>5] is std::mask_array<int> std::cout << "After v[v>5]=-1: "; for(std::size_t n = 0; n < data.size( ++n) std::cout << data[n] << ' '; // regular operator[] std::cout << '\n'; }

二次

产出:

二次

Initial valarray: 0 1 2 3 4 5 6 7 8 9 After v[v>5]=-1: 0 1 2 3 4 5 -1 -1 -1 -1

二次

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/数值/valArray/操作符[医]在