关于vector的一点疑问?

sc_valentine21 2011-03-28 06:08:34
使用vector时,直接当做数组来用

int nCount = m_vec.size();

for(int i = 0; i < nCount; ++i)
{
m_vec[i] = ......
......
}


还有就是使用迭代器,也能完成相同的动作。

这两种方式到底哪种好?我觉得第一种也蛮方便的啊,难道效率上比较低下?

希望高人解答一下,非常感谢。
...全文
175 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yufeiyu2007 2011-03-28
  • 打赏
  • 举报
回复
都差不多吧
CppCoder 2011-03-28
  • 打赏
  • 举报
回复
是没什么区别
mskmc_mc 2011-03-28
  • 打赏
  • 举报
回复
下标返回的是类型的引用

而迭代器返回的是指针

都差不多啦
pamtry 2011-03-28
  • 打赏
  • 举报
回复
对于简单的应用来说,两者确实没有什么太大的差别
hongwenjun 2011-03-28
  • 打赏
  • 举报
回复
容器和迭代器 就是C++用来代替数组使用的。
C++ Primer 中文版 上有说明
eastcowboy 2011-03-28
  • 打赏
  • 举报
回复
用迭代器的话,可以很容易把vector换成其它容器。
其它的没什么了,看个人喜好。
delphiwcdj 2011-03-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sylcc_ 的回复:]

容器和迭代器安全一点,在一定程度上可以防止越界访问
[/Quote]
使用迭代器更好
sylcc_ 2011-03-28
  • 打赏
  • 举报
回复
容器和迭代器安全一点,在一定程度上可以防止越界访问
sc_valentine21 2011-03-28
  • 打赏
  • 举报
回复
通常我的做法是,操作之前,得到总数nCount,然后判断索引是否在0 ~ nCount - 1之间。

如果是使用迭代器,要怎么保证不会越界呢?也是像上面一样???
elegant87 2011-03-28
  • 打赏
  • 举报
回复
是一样的
vector内存分配是连续的
是一个动态数组
两种方式便利
跟数组是一样的
FlySky_OSG 2011-03-28
  • 打赏
  • 举报
回复

当然是迭代器要好~如果是固定大小的,就没有必要使用向量,那样浪费空间,直接用数组及可以了~~~
给您推荐一篇文章:
http://audbel.com/0/439871
恨天低 2011-03-28
  • 打赏
  • 举报
回复
都差不多的!
pengzhixi 2011-03-28
  • 打赏
  • 举报
回复
没有,效率上不会差。

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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