如何限制向量的最大大小?

How to limit the maximum size of vector?

我正在尝试使用像队列这样的有限大小缓冲区在后面放置一些数字,直到它达到特定大小(例如 10),然后在添加新元素时从前面删除一个元素背面。

我为此目的使用了向量,但是在 运行 程序(在调试模式下)多次 运行 之后,突然出现堆损坏错误,例如:

Critical error detected c0000374

在运行的中间,我觉得应该是内存的问题,因为我减少vector的个数错误就消失了

到目前为止,我只是使用一个向量,每次都将新值赋给它。例如,假设代码是这样的:

#include <iostream>
using namespace std;

vector<int> myvec;
int i = 0;

int main()
{
    while(True) {
        myvec.push_back(i);
        i++;
    }
    return 0;
}

如何将 myvec 的大小限制为 10,以便当它包含 10 个元素并向其添加新元素时,第一个元素从内存中删除?

在这里使用向量是个好主意,还是我应该改用队列?

你可以这样做->

#include <iostream>
using namespace std;

vector<int> myvec;
int i = 0;

int main()
{
   while(True) {
    if(myvec.size()==10)
    {
        myvec.pop_back();
    }
    myvec.push_back(i);
    i++;
}
return 0;
}