社区
工具平台和程序库
帖子详情
请问一个有关iterators的问题。。。
lglabc
2003-06-13 02:48:03
我定义了一个vector<long>变量;指定了一个iterators,
我用find函数在这个vector中找到某个特定数值的pos,现在我想知道这个pos是单数还是偶数(也就是说这个特定数值的索引值是单数还是偶数),不过pos好像不是一个连续的整形数字(比如说第一个位置就返回1,第二个位置就返回2。。。),有没有办法将pos变成连续的索引值(1,2,3,4。。。)呢?
或者用什么其他的方法??
谢谢!
...全文
107
12
打赏
收藏
请问一个有关iterators的问题。。。
我定义了一个vector变量;指定了一个iterators, 我用find函数在这个vector中找到某个特定数值的pos,现在我想知道这个pos是单数还是偶数(也就是说这个特定数值的索引值是单数还是偶数),不过pos好像不是一个连续的整形数字(比如说第一个位置就返回1,第二个位置就返回2。。。),有没有办法将pos变成连续的索引值(1,2,3,4。。。)呢? 或者用什么其他的方法?? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lglabc
2003-06-15
打赏
举报
回复
噢!有道理,merlinran兄果然厉害。
同时也谢谢其他几位了!
yecao_kinux
2003-06-14
打赏
举报
回复
问题的关键是你的vector是否一直在动态的变化呢?
如果不是,那么这个步长是可以在vector不在动态变化时计算出来的,那么这个位置也就相对不变;
但如果vector是一直在动态的变化的,估计这种办法实现起来就很困难了.
lglabc
2003-06-14
打赏
举报
回复
如果定义步长的话,要定义多大呢?long?
merlinran
2003-06-14
打赏
举报
回复
其实在所有序列容器上都可以实现你的要求,包括list之类没有随机迭代器的容器。关键点是不要把迭代器想成指针。
比如用vector,假设有一个vector v和它上面的一个iterator pos:
bool odd = distance(pos, v.begin())%2 == 1;
这里的关键是distance返回的是iterator::difference_type,就是该迭代器与容器首部的距离。而这个difference_type要求必须是signed integer type,所以可以对它进行取模运算。参见标准中的23.1节table 65。
lglabc
2003-06-14
打赏
举报
回复
哦,那就可惜了,我的vector肯定要变的。。。
还有什么别的方法吗?
晨星
2003-06-13
打赏
举报
回复
呵呵,不用客气。
yecao_kinux
2003-06-13
打赏
举报
回复
是否可用一个相对vector<long>::begin()的步长来表示呢?这样一来也是可准确的访问vector里的数据的.
yecao_kinux
2003-06-13
打赏
举报
回复
动态Vector的确不在适合用下标概念来描述了,pos一般来说应该把它看做是一个非连续的整形数字,但如果非要给一个索引值,我看把它当作连续的也未尝不可.
或者还有什么其他的方法呢?关注中.....
to steedhorse(晨星):
借此表示谢谢.昨日下线早 Zz..... ^_^
lglabc
2003-06-13
打赏
举报
回复
哎呀!没看完,只好再发一个了。
snipersu 兄没理解我的意思,我不是说vector中的值是奇数还是偶数,而是说索引值是奇数还是偶数,所以你的方法还不能解决我的问题。。。
lglabc
2003-06-13
打赏
举报
回复
哦,先谢了!
我之所以用vector,是因为我的数组是动态的,自己写太麻烦了,呵呵。这个简单一点。
snipersu
2003-06-13
打赏
举报
回复
void main()
{
vector<long> lv;
for(int i=0;i<20;i++)
lv.push_back(i+i);
for(int j=0;j<20;j++)
{
vector<long>::iterator it=find(lv.begin(),lv.end(),j+j);
cout<<j<<":Find the element "<<lv[j]<<" at the pos of vector "<<it-lv.begin()<<endl;
}
}
晨星
2003-06-13
打赏
举报
回复
vector等容器,其迭代器的具体类型信息对用户是透明的,从封装的角度考虑,除了通过它对容器进行读写增删外,不提倡在把它用作别的用途。
对于你的问题,可是将vetor作为数组使用。
如
vector<long> vec;
for(int i = 0 ; i < vec.size() ; i++)
{
if(vec[i] ……)
……
}
但对于容器而言,“索引值”的概念已不是那么重要,如果那么关心“索引值”,为什么不使用数组呢?
12-
iterator
s-and-generators(迭代器和生成器12).pdf
12-
iterator
s-and-generators(迭代器和生成器12).pdf
deeplearning4j-datavec-
iterator
s-1.0.0-M1.1-API文档-中文版.zip
赠送jar包:deeplearning4j-datavec-
iterator
s-1.0.0-M1.1.jar; 赠送原API文档:deeplearning4j-datavec-
iterator
s-1.0.0-M1.1-javadoc.jar; 赠送源代码:deeplearning4j-datavec-
iterator
s-1.0.0-M1.1-sources.jar; 赠送Maven依赖信息文件:deeplearning4j-datavec-
iterator
s-1.0.0-M1.1.pom; 包含翻译后的API文档:deeplearning4j-datavec-
iterator
s-1.0.0-M1.1-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.deeplearning4j:deeplearning4j-datavec-
iterator
s:1.0.0-M1.1; 标签:deeplearning4j、datavec、
iterator
s、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内
deeplearning4j-utility-
iterator
s-1.0.0-M1.1-API文档-中文版.zip
赠送jar包:deeplearning4j-utility-
iterator
s-1.0.0-M1.1.jar; 赠送原API文档:deeplearning4j-utility-
iterator
s-1.0.0-M1.1-javadoc.jar; 赠送源代码:deeplearning4j-utility-
iterator
s-1.0.0-M1.1-sources.jar; 赠送Maven依赖信息文件:deeplearning4j-utility-
iterator
s-1.0.0-M1.1.pom; 包含翻译后的API文档:deeplearning4j-utility-
iterator
s-1.0.0-M1.1-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.deeplearning4j:deeplearning4j-utility-
iterator
s:1.0.0-M1.1; 标签:deeplearning4j、utility、
iterator
s、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内
deeplearning4j-datavec-
iterator
s-1.0.0-M1.1-API文档-中英对照版.zip
赠送jar包:deeplearning4j-datavec-
iterator
s-1.0.0-M1.1.jar; 赠送原API文档:deeplearning4j-datavec-
iterator
s-1.0.0-M1.1-javadoc.jar; 赠送源代码:deeplearning4j-datavec-
iterator
s-1.0.0-M1.1-sources.jar; 赠送Maven依赖信息文件:deeplearning4j-datavec-
iterator
s-1.0.0-M1.1.pom; 包含翻译后的API文档:deeplearning4j-datavec-
iterator
s-1.0.0-M1.1-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.deeplearning4j:deeplearning4j-datavec-
iterator
s:1.0.0-M1.1; 标签:deeplearning4j、datavec、
iterator
s、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件
deeplearning4j-utility-
iterator
s-1.0.0-M1.1-API文档-中英对照版.zip
赠送jar包:deeplearning4j-utility-
iterator
s-1.0.0-M1.1.jar; 赠送原API文档:deeplearning4j-utility-
iterator
s-1.0.0-M1.1-javadoc.jar; 赠送源代码:deeplearning4j-utility-
iterator
s-1.0.0-M1.1-sources.jar; 赠送Maven依赖信息文件:deeplearning4j-utility-
iterator
s-1.0.0-M1.1.pom; 包含翻译后的API文档:deeplearning4j-utility-
iterator
s-1.0.0-M1.1-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.deeplearning4j:deeplearning4j-utility-
iterator
s:1.0.0-M1.1; 标签:deeplearning4j、utility、
iterator
s、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件
工具平台和程序库
24,854
社区成员
27,343
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章