C++ valarray 庫 - 函式 operator[]



描述

它訪問元素或下標。

宣告

以下是 std::valarray::operator[] 函式的宣告。

 T operator[] (size_t n) const;
   T& operator[] (size_t n);

C++11

 const T& operator[] (size_t n) const;
   T& operator[] (size_t n);

引數

  • n − 它是在 valarray 中元素的位置。

  • slc − 它是一個切片物件,指定選擇 valarray 的哪些元素。

  • gslc − 它是一個 gslice 物件,指定選擇 valarray 的哪些元素。

  • msk − 它是一個 valarray其元素標識是否選擇 *this 的每個元素:如果 *this 中的元素在 msk 中具有其對應的元素設定為 true,則它是返回的子陣列的一部分,否則不是。

  • ind − 它是一個 valarray其元素標識選擇 *this 的哪些元素:ind 中的每個元素都是 *this 中一個元素的索引,該元素將成為返回的子陣列的一部分。

返回值

它返回 *this。

異常

基本保證 - 如果對元素執行的任何操作引發異常。

資料競爭

訪問所有有效複製的元素。

示例

以下示例說明了 std::valarray::operator[] 函式。

#include <iostream>
#include <valarray>

int main () {
   std::valarray<int> myarray (10);

   myarray[std::slice(2,3,3)]=10;

   size_t lengths[]={2,2};
   size_t strides[]={6,2};
   myarray[std::gslice(1, std::valarray<size_t>(lengths,2), 
      std::valarray<size_t>(strides,2))]=20;

   std::valarray<bool> mymask (10);
   for (int i=0; i<10; ++i) mymask[i]= ((i%2)==0);
   myarray[mymask] += std::valarray<int>(3,5);

   //indirect:
   size_t sel[]= {2,5,7};
   std::valarray<size_t> myselection (sel,3);
   myarray[myselection]=99;

   std::cout << "myarray: ";
   for (size_t i=0; i<myarray.size(); ++i)
      std::cout << myarray[i] << ' ';
   std::cout << '\n';

   return 0;
}

讓我們編譯並執行上述程式,這將產生以下結果:

myarray: 3 20 99 20 3 99 3 99 13 20 
valarray.htm
廣告

© . All rights reserved.