c++ STL里,vector 为何能用下标来访问元素?
vector<int>s(10);s[1]=3;在这里,s是什么?能直接下标访问,那s不就是指向数组首地址的指针了?但s这又不是指针啊,这明明是一个实例化的类对象啊。...
vector <int > s(10);
s[1] = 3;
在这里,s是什么?能直接下标访问,那s 不就是指向数组首地址的指针了?
但s 这又不是指针啊,这明明是一个实例化的类对象啊。 展开
s[1] = 3;
在这里,s是什么?能直接下标访问,那s 不就是指向数组首地址的指针了?
但s 这又不是指针啊,这明明是一个实例化的类对象啊。 展开
2个回答
展开全部
重载了下标运算符的对象。
举个例子
#include <iostream>
using namespace std;
template <typename T>
class Vec {
public:
T &operator [](unsigned index) {
std::cout << "T &Vec::operator [](unsigned) was called. index == " << index << std::endl;
return v[index];
}
protected:
T v[128];
};
int main() {
Vec<int> s;
s[10] = 5;
cout << s[10] << endl;
return 0;
}
你下载下来运行一下就明白了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询