template<typename T>
class vector {
vector();
vector(const vector& c);
vector(size_t num, const T& val = T());
~vector();
T& operator[](size_t index);
const T& operator[](size_t index) const;
vector operator=(const vector& v);
T& at(size_t loc);
const T& at(size_t loc) const;
void pop_back();
void push_back(const T& val);
size_t size() const;
};
Run Code Online (Sandbox Code Playgroud)
它允许您在向量为const或非const时查找项.
例如:
const vector<int> x;
x.at(0); // Calls const version;
vector<int> y;
x.at(0); // Calls non-const version;
Run Code Online (Sandbox Code Playgroud)
这是一种非常常见的C++范例,它使基于的方法重载const.在示例中operator[],由于同样的原因,你发布了一个const和非const版本.