std::gslice
De cppreference.com
[] |
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
<metanoindex/>
<tbody> </tbody>| Dclar dans l'en-tte <valarray>
|
||
class gslice; |
||
std::gslice est la classe de slection qui identifie un sous-ensemble d'indices std::valarray dfinies par un ensemble plusieurs niveaux de progrs et de tailles. Objets de std::gslice type peuvent tre utiliss comme des indices avec operator[] valarray slectionner, par exemple, les colonnes d'un tableau multidimensionnel reprsent comme un valarray .Original:
std::gslice is the selector class that identifies a subset of std::valarray indices defined by a multi-level set of strides and sizes. Objects of type std::gslice can be used as indices with valarray's operator[] to select, for example, columns of a multidimensional array represented as a valarray.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Compte tenu de la s valeur de dpart, la liste des progrs i
j et une liste des tailles d
j, un
j=s+
j(i
jd
j) .
j et une liste des tailles d
j, un
std::gslice construit partir de ces valeurs slectionne l'ensemble des indices kj=s+
j(i
jd
j) .
Original:
Given the starting value s, a list of strides i
j and a list of sizes d
j, a
j=s+
j(i
jd
j).
j and a list of sizes d
j, a
std::gslice constructed from these values selects the set of indices kj=s+
j(i
jd
j).
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Par exemple, un GSlice avec
3 indice de dpart, des progrs {19,4,1} et longueurs {2,4,3} gnre l'ensemble suivant des indices:Original:
For example, a gslice with starting index
3, strides {19,4,1} and lengths {2,4,3} generates the following set of indices:The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
3 + 0*19 + 0*4 + 0*1 = 3, 3 + 0*19 + 0*4 + 1*1 = 4, 3 + 0*19 + 0*4 + 2*1 = 5, 3 + 0*19 + 1*4 + 0*1 = 7, 3 + 0*19 + 1*4 + 1*1 = 8, ... 3 + 1*19 + 3*4 + 2*1 = 36
Il est possible de construire des objets
std::gslice qui slectionnent certains indices plus d'une fois: si l'exemple ci-dessus utilise la {1,1,1} progrs, les indices auraient t {3, 4, 5, 4, 5, 6, ...} . Gslices Elles ne peuvent tre utilises comme arguments la version const de std::valarray::operator[], sinon le comportement est indfini .Original:
It is possible to construct
std::gslice objects that select some indices more than once: if the above example used the strides {1,1,1} , the indices would have been {3, 4, 5, 4, 5, 6, ...} . Such gslices may only be used as arguments to the const version of std::valarray::operator[], otherwise the behavior is undefined.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Fonctions membres
construit un GSlice Original: constructs a gslice The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
accde au dbut de la GSlice Original: accesses the start of the gslice The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
accde au tableau des progrs de la GSlice Original: accesses the array of strides of the gslice The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
accde l'ensemble de sizees de la GSlice Original: accesses the array of sizees of the gslice The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
Exemple
illustre l'utilisation de gslices pour rpondre colonnes d'un tableau 3D
Original:
demonstrates the use of gslices to address columns of a 3D array
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
#include <iostream>
#include <valarray>
void test_print(std::valarray<int>& v, int rows, int cols, int planes)
{
for(int r=0; r<rows; ++r) {
for(int c=0; c<cols; ++c) {
for(int z=0; z<planes; ++z)
std::cout << v[r*cols*planes + c*planes + z] << ' ';
std::cout << '\n';
}
std::cout << '\n';
}
}
int main()
{
std::valarray<int> v = // 3d array: 2 x 4 x 3 elements
{ 111,112,113 , 121,122,123 , 131,132,133 , 141,142,143,
211,212,213 , 221,222,223 , 231,232,233 , 241,242,243};
// int ar3d[2][4][3]
std::cout << "Initial 2x4x3 array:\n";
test_print(v, 2, 4, 3);
// update every value in the first columns of both planes
v[std::gslice(0, {2, 4}, {4*3, 3})] = 1; // two level one strides of 12 elements
// then four level two strides of 3 elements
// subtract the third column from the second column in the 1st plane
v[std::gslice(1, {1, 4}, {4*3, 3})] -= v[std::gslice(2, {1, 4}, {4*3, 3})];
std::cout << "After column operations: \n";
test_print(v, 2, 4, 3);
}
Rsultat :
Initial 2x4x3 array:
111 112 113
121 122 123
131 132 133
141 142 143
211 212 213
221 222 223
231 232 233
241 242 243
After column operations:
1 -1 113
1 -1 123
1 -1 133
1 -1 143
1 212 213
1 222 223
1 232 233
1 242 243
Voir aussi
get / set lment valarray, tranche, ou un masque Original: get/set valarray element, slice, or mask The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
BLAS-like tranche d'un valarray: indice de dpart, la longueur de foule Original: BLAS-like slice of a valarray: starting index, length, stride The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (classe) | |
procuration d'un sous-ensemble d'un valarray aprs l'application d'une GSlice Original: proxy to a subset of a valarray after applying a gslice The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (classe gnrique) | |