游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3529|回复: 7

怎样才能得到vector里一个元素的地址?

[复制链接]

4

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2005-2-27 23:00:00 | 显示全部楼层 |阅读模式
std::vector<int> intVec;
int * pi = intVec.begin();

我看到书上例子可以这么做,可我做了却说:
error C2440: “类型转换” : 无法从“std::vector<_Ty>::iterator”转换为“int *”
请问怎样才能得到vector里一个元素的地址?谢谢了

8

主题

111

帖子

163

积分

注册会员

Rank: 2

积分
163
发表于 2005-2-27 23:24:00 | 显示全部楼层

Re:怎样才能得到vector里一个元素的地址?

int *pi;
pi=&(intVec);

4

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
 楼主| 发表于 2005-2-27 23:33:00 | 显示全部楼层

Re:怎样才能得到vector里一个元素的地址?

十分感谢

21

主题

100

帖子

108

积分

注册会员

Rank: 2

积分
108
发表于 2005-2-27 23:36:00 | 显示全部楼层

Re:怎样才能得到vector里一个元素的地址?

vector<int>::iterator pi = intVec.begin();

2

主题

59

帖子

59

积分

注册会员

Rank: 2

积分
59
发表于 2005-2-28 11:04:00 | 显示全部楼层

Re:怎样才能得到vector里一个元素的地址?

哪本书这样交你的?可以把这本书扔掉了...估计是很久远年代的书了...

14

主题

131

帖子

136

积分

注册会员

Rank: 2

积分
136
发表于 2005-3-1 14:10:00 | 显示全部楼层

Re:怎样才能得到vector里一个元素的地址?

请使用迭代器,象这样:vector<type>::iterator iCur ;
而 *iCur 则是容器的内容,循环得到每一个元素的值使用:
for(iCur = intVec.begin(); iCur != intVec.end();iCur ++)
{
.............
}

1

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2005-3-2 19:33:00 | 显示全部楼层

Re: 怎样才能得到vector里一个元素的地址?

对,要想尽一切办法避免使用指针

2

主题

59

帖子

59

积分

注册会员

Rank: 2

积分
59
发表于 2005-3-2 20:18:00 | 显示全部楼层

Re:怎样才能得到vector里一个元素的地址?

其实遍历vector最好的办法就是使用下标,使用iterator不是一个很好的主意,因为如果在循环里改变了vector的内容,很有可能造成iterator失效,即使你是增加内容也可能因为引起vector整个搬迁而使iterator失效。

所以还是用下标来访问比较安全。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-24 12:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表