[Glacier] Add iterator to Array and ArrayView.
This commit is contained in:
parent
66e7e95855
commit
0a57d149b6
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#include "glacier/container/array_iter.h"
|
||||||
#include "glacier/container/array_view.h"
|
#include "glacier/container/array_view.h"
|
||||||
|
|
||||||
namespace glcr {
|
namespace glcr {
|
||||||
|
@ -37,6 +38,13 @@ class Array {
|
||||||
uint64_t size() const { return size_; }
|
uint64_t size() const { return size_; }
|
||||||
bool empty() const { return size_ == 0; }
|
bool empty() const { return size_ == 0; }
|
||||||
|
|
||||||
|
typedef ArrayIterator<T> Iterator;
|
||||||
|
|
||||||
|
Iterator begin() { return {data_, size_}; }
|
||||||
|
const Iterator begin() const { return {data_, size_}; }
|
||||||
|
Iterator end() { return {nullptr, 0}; }
|
||||||
|
const Iterator end() const { return {nullptr, 0}; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
T* data_;
|
T* data_;
|
||||||
uint64_t size_;
|
uint64_t size_;
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#include "glacier/container/array_iter.h"
|
||||||
|
|
||||||
namespace glcr {
|
namespace glcr {
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
|
@ -26,6 +28,23 @@ class ArrayView {
|
||||||
uint64_t size() const { return size_; }
|
uint64_t size() const { return size_; }
|
||||||
bool empty() const { return size_; }
|
bool empty() const { return size_; }
|
||||||
|
|
||||||
|
typedef ArrayIterator<T> Iterator;
|
||||||
|
|
||||||
|
Iterator begin() {
|
||||||
|
if (size_ == 0) {
|
||||||
|
return {nullptr, 0};
|
||||||
|
}
|
||||||
|
return {data_, size_};
|
||||||
|
}
|
||||||
|
const Iterator begin() const {
|
||||||
|
if (size_ == 0) {
|
||||||
|
return {nullptr, 0};
|
||||||
|
}
|
||||||
|
return {data_, size_};
|
||||||
|
}
|
||||||
|
Iterator end() { return {nullptr, 0}; }
|
||||||
|
const Iterator end() const { return {nullptr, 0}; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
T* data_;
|
T* data_;
|
||||||
uint64_t size_;
|
uint64_t size_;
|
||||||
|
|
Loading…
Reference in New Issue