Dela via


indirect_array klass

En intern, extra klassmall som stöder objekt som är delmängder av valarray objekt genom att tillhandahålla åtgärder mellan underuppsättningsmatriser som definierats genom att ange en delmängd av index för en överordnad valarray.

Syntax

Anmärkningar

Klassen beskriver ett objekt som lagrar en referens till ett objekt va av klassen valarray<Type>, tillsammans med ett objekt xa av klassen valarray<size_t>, som beskriver sekvensen med element som ska väljas från valarray<Type> objektet.

Du skapar bara ett indirect_array<Type> objekt genom att skriva ett uttryck för formuläret va[xa]. Medlemsfunktionerna i klassen indirect_array beter sig sedan som motsvarande funktionssignaturer som definierats för valarray<Type>, förutom att endast sekvensen med valda element påverkas.

Sekvensen består av xa.size element, där elementet I blir indexet xa[I] inom va.

Example

// indirect_array.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>

int main( )
{
   using namespace std;
   int i;

   valarray<int> va ( 10 );
   for ( i = 0 ; i < 10 ; i += 2 )
      va [ i ] =  i;
   for ( i = 1 ; i < 10 ; i += 2 )
      va [ i ] =  -1;

   cout << "The initial operand valarray is:  ( ";
      for ( i = 0 ; i < 10 ; i++ )
         cout << va [ i ] << " ";
   cout << ")." << endl;

   // Select 2nd, 4th & 6th elements
   // and assign a value of 10 to them
   valarray<size_t> indx ( 3 );
   indx [0] = 2;
   indx [1] = 4;
   indx [2] = 6;
   va[indx] = 10;

   cout << "The modified operand valarray is:  ( ";
      for (i = 0 ; i < 10 ; i++ )
         cout << va [ i ] << " ";
   cout << ")." << endl;
}

Utgång

The initial operand valarray is:  (0 -1 2 -1 4 -1 6 -1 8 -1).
The modified operand valarray is:  (0 -1 10 -1 10 -1 10 -1 8 -1).

Kravspecifikation

Rubrik:<valarray>

Namespace:std

Se även

Trådsäkerhet i C++-standardbiblioteket