Files
cppdraft_translate/cppdraft/class/slice.md
2025-10-25 03:02:53 +03:00

3.4 KiB

[class.slice]

29 Numerics library [numerics]

29.6 Numeric arrays [numarray]

29.6.4 Class slice [class.slice]

29.6.4.1 Overview [class.slice.overview]

🔗

namespace std {class slice {public: slice(); slice(size_t, size_t, size_t); slice(const slice&);

size_t start() const; size_t size() const; size_t stride() const; friend bool operator==(const slice& x, const slice& y); };}

1

#

The slice class represents a BLAS-like slice from an array.

Such a slice is specified by a starting index, a length, and a stride.252

252)252)

BLAS stands forBasic Linear Algebra Subprograms.

C++ programs can instantiate this class.

See, for example, Dongarra, Du Croz, Duff, and Hammerling:A set of Level 3 Basic Linear Algebra Subprograms; Technical Report MCS-P1-0888, Argonne National Laboratory (USA), Mathematics and Computer Science Division, August, 1988.

29.6.4.2 Constructors [cons.slice]

🔗

slice(); slice(size_t start, size_t length, size_t stride);

1

#

The default constructor is equivalent to slice(0, 0, 0).

A default constructor is provided only to permit the declaration of arrays of slices.

The constructor with arguments for a slice takes a start, length, and stride parameter.

2

#

[Example 1:

slice(3, 8, 2) constructs a slice which selects elements 3,5,7,…,17 from an array.

— end example]

29.6.4.3 Access functions [slice.access]

🔗

size_t start() const; size_t size() const; size_t stride() const;

1

#

Returns: The start, length, or stride specified by a slice object.

2

#

Complexity: Constant time.

29.6.4.4 Operators [slice.ops]

🔗

friend bool operator==(const slice& x, const slice& y);

1

#

Effects: Equivalent to:return x.start() == y.start() && x.size() == y.size() && x.stride() == y.stride();