请问:vector::size_type类型和int型有什么区别?

asst2003 2008-01-11 12:49:32
在VC2005下,vector<string>::size_type被称为:__w64 int
是不是这种类型是64位的"int"型?
...全文
3224 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
gary_19872006 2012-01-28
  • 打赏
  • 举报
回复
vector<string>::size_type 是无符号型的,用于声明vector容器的大小
vector的元素个数肯定是 >= 0的,所以不用int,应该是出于这样的考虑
cscscs1027 2012-01-27
  • 打赏
  • 举报
回复
API实现吧。坐等高人
lirunfa 2012-01-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 taodm 的回复:]
区别在于size_type是在各stl现实里可以各不相同的,不该/不可以假设它是啥具体类型。
[/Quote]

++
  • 打赏
  • 举报
回复
怎么 所谓的面试题 都这样啊 谁面试时 真的碰到这些题了
myj870517 2011-04-20
  • 打赏
  • 举报
回复
复习了。。。
huer0625 2011-04-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hellodan 的回复:]

C/C++ code

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

int main()
{
cout<<sizeof(vector<string>::size_type)<<endl;

return 0;
}
//找一下STL源码就知了。
[/Quote]
++1
hastings 2010-12-10
  • 打赏
  • 举报
回复
这坟挖的 - -
龙哥依旧 2010-12-10
  • 打赏
  • 举报
回复
vector::size_type (STL/CLR)

The type of a signed distance between two element.


typedef int size_type;

阳光岛主 2010-12-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 rowdzfda 的回复:]
感觉各个库中size_type都不一样,反正我在使用时都会直接先
typedef vector<string>::size_type size_type;
[/Quote]

up..
sabflying 2010-04-18
  • 打赏
  • 举报
回复
__w64是为了保证兼容性,这种和操作系统相关的类型,
不同的操作系统#define的类型不同,
32位系统为int,64位系统为long
tj_swjtu 2010-04-17
  • 打赏
  • 举报
回复
up...........
depositpei 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 qq775723294 的回复:]
vector<string>::size_type 主要是为了可移植性强吧。。
[/Quote]

C++primer第三版里面有说string中的size_type跟int区别不大,
建议使用size_type是为了代码的移植
zengpingweb 2010-04-15
  • 打赏
  • 举报
回复
可能还不仅仅是u int和int的区别。
楼主去翻下书看看。
qq775723294 2010-04-13
  • 打赏
  • 举报
回复
vector<string>::size_type 主要是为了可移植性强吧。。
herman~~ 2010-04-13
  • 打赏
  • 举报
回复
看来是 根据 32位或者64位不同cpu来取决 为w64的长度了
yangyunzhao 2010-04-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 asst2003 的回复:]
楼上的程序在VC2005下输出4(我还以为会输出8)和"int"型是一样的,看来用int型代替应该也没有什么问题的把
[/Quote]
单一平台下肯定没有问题。但是如果你的代码在不同平台下呢?比如32/64,比如有的16位机器?
所以还是用vector <string>::size_type好
candeabc123 2010-04-13
  • 打赏
  • 举报
回复
这么老的帖子都被顶出来。兄弟是不是被面试题给难住了?
s79947171 2010-04-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 oldmanzhao 的回复:]
size_type 是 unsigned 型的,所以具体使用的时候要避免出现
for (vector <string>::size_type i = 100; i>0; i--)
这样的语句,因为i永远也不会小于0
[/Quote]

up
wangweicmon236 2009-06-12
  • 打赏
  • 举报
回复
vector<Charac>::size_type k=ChacSet.size();
for(vector<Charac>::size_type j=0;j<k;j++){double likehood=0;}
我现在不用iterator,如上这么简单的代码,他也不行,还是同样的结果,一直循环
rowdzfda 2008-01-13
  • 打赏
  • 举报
回复
感觉各个库中size_type都不一样,反正我在使用时都会直接先
typedef vector<string>::size_type size_type;
加载更多回复(10)

64,680

社区成员

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

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