Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::indirect_array(3)	      C++ Standard Libary	std::indirect_array(3)

NAME
       std::indirect_array - std::indirect_array

Synopsis
	  Defined in header <valarray>
	  template< class T > class indirect_array;

	  std::indirect_array  is  a helper template used by the valarray sub-
       script operator
	  with std::valarray<std::size_t> argument. It has reference semantics
       to a subset of
	  the array whose indices specified by the  std::valarray<std::size_t>
       object.

Member types
	  Type	     Definition
	  value_type T

Member functions
	  constructor	constructs a indirect_array
			(public	member function)
	  destructor	destroys a indirect_array
			(public	member function)
	  operator=	assigns	contents
			(public	member function)
	  operator+=
	  operator-=
	  operator*=
	  operator/=
	  operator%=	performs arithmetic operation on the array referred by
       indirect	array.
	  operator&=	(public	member function)
	  operator|=
	  operator^=
	  operator<<=
	  operator>>=

Example
       // Run this code

	#include <iostream>
	#include <valarray>

	int main()
	{
	    std::valarray<int> data = {0,1,2,3,4,5,6,7,8,9};

	    std::valarray<std::size_t> idx = {0,2,4,6,8};

	    std::cout << "Original valarray: ";
	    for(int n: data) std::cout << n << ' ';
	    std::cout << '\n';

	    data[idx] += data[idx]; // double the values at indexes 'idx'

	    // the type	of data[idx] is	std::indirect_array<int>

	    std::cout << "After	indirect modification: ";
	    for(int n: data) std::cout << n << ' ';
	    std::cout << '\n';
	}

Output:
	Original valarray: 0 1 2 3 4 5 6 7 8 9
	After indirect modification: 0 1 4 3 8 5 12 7 16 9

http://cppreference.com		  2022.07.31		std::indirect_array(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::indirect_array&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help