什么是const"at()"的目的和在这段代码中的非const at()"?

use*_*061 0 c++ const

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)

Sea*_*ean 5

它允许您在向量为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版本.