关于String::size_type pos=//...的疑问!

broadarms 2003-11-17 08:37:42
1)“::”------是什么意思?
2)size_type------又是什么意思?
3)这句话是什么意思?

//初学c++,见笑!
...全文
120 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Meyer 2003-11-17
  • 打赏
  • 举报
回复
String::size_type pos
^^^
应该是string::size_type

对string的字符索引 所使用的类型不是我们用的最多的int
而是一个 typedef 的声明, 这样做可以是标准库在各平台调整合适的类型
jyc_nj 2003-11-17
  • 打赏
  • 举报
回复
typedef basic_string<char> string;
class basic_string {
...
typedef A::size_type size_type;
...
}
::是作用域符号, 表示后面是String类里的(这里是个类中自定义的变量类型.)
typedef A::size_type size_type;同样, 在allocator<T>中已经定义了这个类型, 但在不同域使用要加上作用域符号, 即每次都要用上A::size_type, 故,这里定义个本类的中同意义的size_type.
class allocator {
typedef size_t size_type; //所以到底这还是常见的size_t(在win32里,就是unsigned int)
}
象string中at(size_type pos)这类函数都需要这种类型的参数, 转换是隐式完成的.

你知道是这么回事就可以了,不用太在意.


broadarms 2003-11-17
  • 打赏
  • 举报
回复
其实是c++ primer上的,讲文本查询系统的那章!
我贴出一段完整的程序,如下:
//下面的代码找到字符串中的第一个数字.

#include <string>
#include <iostream>

int main(){
string num1("0123456789");
string num2("c2j2");

string::size_type pos=num2.find_first_of_(num1);
cout<<"found num1 at index:"
<<pos <<"\telement is:"
<<num1[pos]<<endl;
}
schollc 2003-11-17
  • 打赏
  • 举报
回复
pos是不是string的一个属性,但是看上去不像,关注吧。
yuantao 2003-11-17
  • 打赏
  • 举报
回复
估计是string 的嵌套类把
::是表示size_type归String 所有
zhouqingyuan 2003-11-17
  • 打赏
  • 举报
回复

把程序前后多贴点出来先
broadarms 2003-11-17
  • 打赏
  • 举报
回复
楼上的意思是不是说 size_type是将数据类型转换成整型?

70,017

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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