c++ STL里,vector 为何能用下标来访问元素?

vector<int>s(10);s[1]=3;在这里,s是什么?能直接下标访问,那s不就是指向数组首地址的指针了?但s这又不是指针啊,这明明是一个实例化的类对象啊。... vector <int > s(10);

s[1] = 3;

在这里,s是什么?能直接下标访问,那s 不就是指向数组首地址的指针了?

但s 这又不是指针啊,这明明是一个实例化的类对象啊。
展开
 我来答
yuantailing
推荐于2017-10-03 · TA获得超过2545个赞
知道小有建树答主
回答量:1167
采纳率:92%
帮助的人:660万
展开全部

重载了下标运算符的对象。


举个例子

#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;
}

你下载下来运行一下就明白了。

viichi
2014-08-19 · TA获得超过355个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:210万
展开全部
运算符重载..

vector 重载了 数组下标运算符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式