我希望有一个容器类在C++中,它与STL vector类的每个方面完全相同,唯一区别是[]运算符具有环绕行为。例如:
vector<int> myVec;
myVec.push_back(5);
myVec.push_back(10);
myVec.push_back(15);
cout << myVec[ 5] << endl; // would output 15
cout << myVec[ 1] << endl; // would output 10
cout << myVec[-2] << endl; // would output 10
是否已经存在这样的容器,或者是否可以在vector模板中重载或重新定义[]运算符?
我看过Boost循环缓冲区,但它不是以这种方式运行。
at
会保留其向量语义吗?另外,为什么myVec[1]
打印的是5
而不是10
?如果向量为空会发生什么? - Mark B