tatami
C++ API for different matrix representations
Loading...
Searching...
No Matches
ArrayView.hpp
Go to the documentation of this file.
1#ifndef TATAMI_ARRAY_VIEW_HPP
2#define TATAMI_ARRAY_VIEW_HPP
3
4#include <cstddef>
5
11namespace tatami {
12
22template<typename T>
23class ArrayView {
24public:
30 ArrayView(const T* ptr, std::size_t number) : my_ptr(ptr), my_number(number) {}
31
35 ArrayView() : ArrayView(NULL, 0) {}
36
40 std::size_t size() const { return my_number; }
41
45 const T* data() const { return my_ptr; }
46
50 const T* begin() const { return my_ptr; }
51
55 const T* end() const { return my_ptr + my_number; }
56
61 T operator[](std::size_t i) const {
62 return my_ptr[i];
63 }
64
65private:
66 const T* my_ptr;
67 std::size_t my_number;
68};
69
70}
71
72#endif
View into a pre-allocated array.
Definition ArrayView.hpp:23
const T * begin() const
Definition ArrayView.hpp:50
T operator[](std::size_t i) const
Definition ArrayView.hpp:61
const T * data() const
Definition ArrayView.hpp:45
std::size_t size() const
Definition ArrayView.hpp:40
ArrayView()
Definition ArrayView.hpp:35
ArrayView(const T *ptr, std::size_t number)
Definition ArrayView.hpp:30
const T * end() const
Definition ArrayView.hpp:55
Flexible representations for matrix data.
Definition Extractor.hpp:15