string类的配置相关函数get_allocator()const的问题

displayMessage 2016-10-02 09:00:02
#include<iostream>
#include<string>
#include<memory>
using namespace std;
void main()
{
string s("abcd");
basic_string<char>s1(s.get_allocator()); //#1
basic_string<char>::allocator_type aT=s1.get_allocator() ; //#2
string::size_size_type se=s1.size(); //#3
cout<<se<<endl;
}
在#1中为什么s1的实参给了一个allocator_type类型的值,难道basic_string<char>模板类中有这个类型形参的构造函数?
另外为什么要写成basic_string<char>, basic_string<char>就是 string吧。
还有如果用allocator_type类型的参数去当实参,构造出来的还是不是string类型?
#2是什么意思,看不懂!
#3想表达什么也看不懂!
求大神搭救!
...全文
215 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ri_aje 2016-10-02
  • 打赏
  • 举报
回复
引用 楼主 displayMessage 的回复:
在#1中为什么s1的实参给了一个allocator_type类型的值,难道basic_string<char>模板类中有这个类型形参的构造函数? 另外为什么要写成basic_string<char>, basic_string<char>就是 string吧。 还有如果用allocator_type类型的参数去当实参,构造出来的还是不是string类型?
答案都是肯定的。
paschen 版主 2016-10-02
  • 打赏
  • 举报
回复
typedef _Alloc allocator_type; 而_Alloc是basic_string类模板其中的一个模板参数 string其实是:typedef basic_string<char, char_traits<char>, allocator<char> > string; 什么加去当实参,不懂你意思

64,646

社区成员

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

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