From 901d8849107df7b2155012fad785f55cd18847f5 Mon Sep 17 00:00:00 2001 From: levlam Date: Tue, 9 Jun 2020 05:09:58 +0300 Subject: [PATCH] Improve VectorQueue. GitOrigin-RevId: c64b8598a3d492236be2c4d1f3ccb4addc14891e --- tdutils/td/utils/VectorQueue.h | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/tdutils/td/utils/VectorQueue.h b/tdutils/td/utils/VectorQueue.h index 5264f54f3..f23160255 100644 --- a/tdutils/td/utils/VectorQueue.h +++ b/tdutils/td/utils/VectorQueue.h @@ -6,10 +6,10 @@ // #pragma once +#include "td/utils/common.h" #include "td/utils/Span.h" #include -#include namespace td { @@ -18,7 +18,7 @@ class VectorQueue { public: template void push(S &&s) { - vector_.push_back(std::forward(s)); + vector_.emplace_back(std::forward(s)); } template void emplace(Args &&... args) { @@ -32,10 +32,10 @@ class VectorQueue { read_pos_ += n; try_shrink(); } - T &front() { + const T &front() const { return vector_[read_pos_]; } - T &back() { + const T &back() const { return vector_.back(); } bool empty() const { @@ -44,9 +44,6 @@ class VectorQueue { size_t size() const { return vector_.size() - read_pos_; } - T *data() { - return vector_.data() + read_pos_; - } const T *data() const { return vector_.data() + read_pos_; } @@ -54,11 +51,11 @@ class VectorQueue { return {data(), size()}; } MutableSpan as_mutable_span() { - return {data(), size()}; + return {vector_.data() + read_pos_, size()}; } private: - std::vector vector_; + vector vector_; size_t read_pos_{0}; void try_shrink() {