我想给stl的vector加上两函数,应该怎么做? vector的at();能取到数据。或者[]也可以。我想在at()后面加上AsString、AsInteger和AsBoolean[]也一样。我应该怎么做呢?当然,不能影响原来的at和[] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 template<class _T>class myvector: public vector<_T>{public: bool AsBool(int i){return (operator [](i) != 0);};}; myvector<int> mv; mv.push_back(11); ASSERT(mv.AsBool(0) == true); 没有听懂你的意思 你不说不要改变vector原有的功能吗?如果你自己写一个vector 只要实现了原有的接口并且一样的效果 套用到上面当然也可以但是包含文件就不能是STL的<vector>而是你自己的咯 不然就不知道vector该用哪一个了那样就等于你直接修改STL带的代码 我的意思是能不能不修改vector这个类,通过其它方法把功能给加上去。并且使用时候还是以原来的形式一样vector<**> ***来声明只是多了我加上去的几个方法按照你1楼的方法,我声明时需要myvector <**> ***来使用了 那你就修改vector这个头文件吧,如果有勇气的话。其实重载的话就要用重载后的类型,怎么可能还用原来的类型? 从语法生讲,不要去派生stl的类,除非你知道这么做的后果从设计上讲,没有必要把asstring之类的函数作为成员函数,因为他的语义不局限于vector。作为一个模板函数就可以了,对各种类型做特化 直接修改会有一定的风险,因为你修改了编译器的模版实现等,自己用模版等方式实现好了,在vector上面再包一下..j既然是自己增加的方法,就应该自己使用,而不是影响别人使用vector 如何用BHO获取当前浏览网页的某个控件的坐标? 50分 用CMutex同步线程是否会影响速度 如何获取属性页?(Direct Show问题.) 三个星星了,散分咯 黑龙江程序员联盟(13711613)欢迎加入(这里高手如云) 一个编译出错的问题 shadowkiss来拿分 关于FindWindow和GetClassName求解释 高手在吗?如何让DLL中的函数能处理消息?? MS help workshop中的Index问题,绝对是赤裸裸的给分! 请问下,树控件中,每个节点的间隔怎么扩大?谢谢 在windows xp 桌面上 点击 右键 出现一个 列表 是怎么实现的呢?
class myvector: public vector<_T>
{
public:
bool AsBool(int i){return (operator [](i) != 0);};
};
myvector<int> mv;
mv.push_back(11);
ASSERT(mv.AsBool(0) == true);
如果你自己写一个vector 只要实现了原有的接口并且一样的效果 套用到上面当然也可以
但是包含文件就不能是STL的<vector>而是你自己的咯 不然就不知道vector该用哪一个了
那样就等于你直接修改STL带的代码
vector<**> ***来声明只是多了我加上去的几个方法按照你1楼的方法,我声明时需要myvector <**> ***来使用了
作为一个模板函数就可以了,对各种类型做特化
自己用模版等方式实现好了,在vector上面再包一下..j
既然是自己增加的方法,就应该自己使用,而不是影响别人使用vector