一个vector的简单语法问题,权当散分

rtdb 2003-10-17 05:13:05

class myVec: public vector <int>
{
}

然后可以用数组格式访问:
myVec vec ;
vec.resize(10) ;
vec[1] = 1 ;

现在的问题是,在类里面应如何也用数组格式访问:

void myVec::GetData(int i)
{
vector <int>::iterator it = begin();
return *(it+i) ;
}

这两条语句可以简化为类似 return this[i] ; 之类的么???

...全文
57 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
aflyinghorse 2003-10-21
  • 打赏
  • 举报
回复
接分
楼上的最全:)
rtdb 2003-10-21
  • 打赏
  • 举报
回复
呵呵,发完了贴,自己差点忘了。

多谢Wolf0403(完美废人),回答最完整;
rainwolfchen(雨中独狼) 也很不错,第一回答,还是对的。

再次感谢大家参与,结帐了。

limd 2003-10-21
  • 打赏
  • 举报
回复
接分
Wolf0403 2003-10-19
  • 打赏
  • 举报
回复
class A
: public vector<int>
{
public:
int GetData(int index)
{
return this->operator [](index);
}
int GetData2(int index)
{
return (*this)[index];
}
int GetData3(int index)
{
return (*(begin() + index));
}
};

GetData3 根本就是从 VC71 的 <vector> 里面抄来的。
leyt 2003-10-19
  • 打赏
  • 举报
回复
先接分
Darkay_Lee 2003-10-19
  • 打赏
  • 举报
回复
还可以这样:
operator[](i);
.^_^。有点麻烦
winco 2003-10-19
  • 打赏
  • 举报
回复
应该是楼上的吧,不知道搂住什么意思?
Andy84920 2003-10-17
  • 打赏
  • 举报
回复
//

#include <iostream>
#include <vector>
using namespace std;

class myVec:public vector<int>
{
public:
int GetData(int i);
};

int myVec::GetData(int i)
{
return (*this)[i];
}

编译通过:好啊!
darcymei 2003-10-17
  • 打赏
  • 举报
回复
sorry!上面写了,没看见!感觉是没这个必要阿:)
darcymei 2003-10-17
  • 打赏
  • 举报
回复
vec[1] 阿
ttlb 2003-10-17
  • 打赏
  • 举报
回复
我是说,如果要简化GetData,就写成 return (*this)[i];
ttlb 2003-10-17
  • 打赏
  • 举报
回复
还要改一下,
return (*this)[i];
这样就行了。
ttlb 2003-10-17
  • 打赏
  • 举报
回复
干吗要 GetData?
其实用不着这个函数,搂主你已经写好了
myVec vec ;
vec.resize(10) ;
vec[1] = 1 ;
这样不是挺好?

不过搂主的GetData函数是可行的,只要把void改成int就行了。
rainwolfchen 2003-10-17
  • 打赏
  • 举报
回复
return (* this)[i];
应该可以吧

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧