优化:编写自定义小矢量的测试方案
在C++中,有时我们需要使用小矢量来处理数据,但是标准库中提供的vector可能会因为大量的分配和释放导致性能下降。因此,我们需要自定义一个小矢量类来提高代码的效率,本文将介绍如何编写自定义的小矢量类并编写测试程序验证其性能。
首先,我们定义自己的小矢量类:
template<typename T, size_t N>
class SmallVector {
public:
SmallVector() {}
~SmallVector() {}
void push_back(const T& val) {
if (m_size < N) {
m_data[m_size++] = val;
} else {
m_vec.push_back(val);
}
}
void reserve(size_t size) {
if (size > N) {
m_vec.reserve(size - N);
}
}
size_t size() const {
return m_size + m_vec.size();
}
bool empty() const {
return size() == 0;
}
T& operator[](size_t idx) {
assert(idx < size() && "O