把vector赋值给数组时的循环标识大家怎么认为的?

早起头疼 2014-01-14 04:53:24
就是编写一个循环把vector中的元素一一赋给数组中的对应元素,循环标识的类型是用vector的vector<>::size_type 还是数组的size_t,或者直接int?
...全文
321 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
minchieh_fay 2014-02-07
  • 打赏
  • 举报
回复
可以用迭代器 如果一定要用下标的话 我建议用size_t,我没记错的话,size_t>int 你可以用int写下试试,一定会产生warning的,只要不产生waring就没问题
sevendays 2014-01-26
  • 打赏
  • 举报
回复
感觉自己一般都是用迭代器,因为看的c++ primer里好像也有相关的例子。
早起头疼 2014-01-26
  • 打赏
  • 举报
回复
引用 7 楼 ForestDB 的回复:
用特定的算法,比如copy 用迭代器 用vector<>::size_type索引 用size_t索引 用int索引 以上按专业程度排名,从专家到菜鸟。 个人比较喜欢最后一种,如果编译器报warning或者error(某些场合类型不兼容),就改用倒数第二种。 偶尔用第一种。
太谦虚了
Binzo 2014-01-15
  • 打赏
  • 举报
回复
vector<int> vec;
vector<int>::iterator it;
for(it = vec.begin(); it != vec.end(); it ++){}
赵4老师 2014-01-15
  • 打赏
  • 举报
回复
提醒:
File: "C:\Program Files\Microsoft Visual Studio 10.0\VC\include\vector" 8 occurrences found on 8 lines
    195:     reference operator[](difference_type _Off) const
    384:     reference operator[](difference_type _Off) const
    911:     const_reference operator[](size_type _Pos) const
    927:     reference operator[](size_type _Pos)
   1769:     const_reference operator[](difference_type _Off) const
   1978:     reference operator[](difference_type _Off) const
   2331:     const_reference operator[](size_type _Off) const
   2336:     reference operator[](size_type _Off)
lugas 2014-01-14
  • 打赏
  • 举报
回复
因为vector是支持的下表操作的,所以用size_t和vector<>::size_type 都是可以的,int嘛 只要你不越界就ok自己使用的时候方便就是用什么,用迭代器是最好不过的,但是要注意插入时候,会导致内存从新分配,导致迭代器失效的情况,所以要注意。
unituniverse2 2014-01-14
  • 打赏
  • 举报
回复
用什么都不要用int,可以直接不用考虑 size_t和size_type都是无符号数。 另外size_t/size_type的范围可能大于unsigned int(但是不一定。看所使用的目标机器支持情况) 如果范围实在很小,比如只有几千个、3万多以内,用什么都无所谓,包括int。但是int一般不考虑的,因为可以比0更小。
ForestDB 2014-01-14
  • 打赏
  • 举报
回复
用特定的算法,比如copy 用迭代器 用vector<>::size_type索引 用size_t索引 用int索引 以上按专业程度排名,从专家到菜鸟。 个人比较喜欢最后一种,如果编译器报warning或者error(某些场合类型不兼容),就改用倒数第二种。 偶尔用第一种。
笨蛋糕 2014-01-14
  • 打赏
  • 举报
回复
引用 1 楼 lx458004975 的回复:
用迭代器 vector<T>::iterator
常用这个把
  • 打赏
  • 举报
回复
用std::copy
早起头疼 2014-01-14
  • 打赏
  • 举报
回复
引用 2 楼 starytx 的回复:
哪个都可以,但是迭代器比较好一些,因为写法比较通用,如果换了其他容器,代码改动比较小
在数组和vector共用一个循环变量做下标的情况下,用iterator好像不行,对int 和迭代器、size_t现在的认识还比较浅。
早起头疼 2014-01-14
  • 打赏
  • 举报
回复
引用 1 楼 lx458004975 的回复:
用迭代器 vector<T>::iterator
迭代器也要用在数组里当下标,不妥吧
starytx 2014-01-14
  • 打赏
  • 举报
回复
哪个都可以,但是迭代器比较好一些,因为写法比较通用,如果换了其他容器,代码改动比较小
偏爱风流 2014-01-14
  • 打赏
  • 举报
回复
用迭代器 vector<T>::iterator

64,642

社区成员

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

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