Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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