请教C++primer上的问题

ymcymc 2003-10-18 04:52:16
C++primer P229
vector<string,allocator>*
retrieve_text()
{
string file_name;
cout << "please enter file name:";
cin >> file_name;
ifstream iffile(file_name.c_str(),ios::in);
if(!infile){
cerr<<"......."
exit(-1);
}
else cout <<'\n';
vector<string,allocator>*lines_of_text=new vector<string,allocator>;
typedef pair<string::size_type,int> stats; //请问这一句是什么意思,两个参数各是什么意思
stats maxline;
int linenum=0;
while(getline(infile,textline,'\n')){
cout <<"line read:"<<textline<<'\n';
if(maxline.first<textline.size()) //maxline.first\maxline.second各代表什么
{maxline.second=linenum;
}
........
...全文
38 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
joyself 2003-10-19
  • 打赏
  • 举报
回复
看来是 pair类型的概念问题。

参见c++ primer 3.14 pair类型
sms88 2003-10-19
  • 打赏
  • 举报
回复
pair类型能够使2种类型的数据或pair类型的数据之间建立联系。
例如:我们把用户的电话号码和用户名建立一一配对的联系
pair<string name,string address> user_information;

C++ primer》有相关的介绍
ymcymc 2003-10-18
  • 打赏
  • 举报
回复
明白了,看的太仓促了,没明白pair类型是做什么的
nirvana_li 2003-10-18
  • 打赏
  • 举报
回复
typedef pair<string::size_type,int> stat
一个typedef而已,主要是减少程序理解难度,也可以少打点字:)。pair是个类似与vector的容器(这样说不知道对不对啊,我好象在STL中没看见过这pair啊~~郁闷),不过是容器是可以肯定的。参数1是string的一个data member,后面是int(可能是大小吧~~不太确定)。

maxline.first\maxline.second各代表什么?
maxline既然是pair容器的对象实体,maxline.firt maxline.second是它的member function。

《C++ primer》我没看过,就当是帮楼主顶一下吧。

Beover1984 2003-10-18
  • 打赏
  • 举报
回复
typedef pair<string::size_type,int> stats //定义一个pair对象,第一个用来记录字符在
//string的位置(用int也可以,但这样做可
//移植性好),第二个就是int不用说了吧
if(maxline.first<textline.size()) //maxline是个pair对象吧,first就是定义时第一种
//类型的对象,second是第二个类型的对象
bigzzz 2003-10-18
  • 打赏
  • 举报
回复
stats为pair<string::size_type,int> 的同义词
bigzzz 2003-10-18
  • 打赏
  • 举报
回复
string::size_type当然是一个类型.通常为int,根据具体实现而定,stats是个pair类型.
maxline.first指的string::size_type类型的值,maxline.second是个int值.匹配typedef pair<string::size_type,int> stats里的两个参数.
ymcymc 2003-10-18
  • 打赏
  • 举报
回复
typedef pair<string::size_type,int> stats
if(maxline.first<textline.size()) //maxline.first\maxline.second各代表什么
{maxline.second=linenum;
请把这两句详细介绍一下

64,646

社区成员

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

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