gpt4 book ai didi

c++ - std::basic_string 中的 push_back() 与序列容器

转载 作者:行者123 更新时间:2023-11-30 01:11:48 25 4
gpt4 key购买 nike

序列容器(dequelistvector)具有以下用于push_back的签名:

void push_back (const value_type& val);
void push_back (value_type&& val);

但是 basic_stringpush_back 有如下签名:

void push_back(CharT ch);

请注意没有引用:参数是 CharT 而不是 const CharT&CharT&&

standards say basic_string 满足 SequenceContainer 的要求,这表明容器的(称之为 X)push_back 应该被定义为接受:

  • tX::value_type
  • 类型的左值或常量右值
  • rvX::value_type
  • 类型的非常量右值

我不是很清楚,这是怎么回事。
有没有人看到如何?谢谢。

最佳答案

我认为这是因为 CharT 类型的简单性。它确实需要通过 reference 传递,因为它不是通过 reference 传递的,所以不需要 const 关键字。

相反,std::vectorstd::list 可能包含一个非常昂贵的复制对象。所以,它应该通过 reference 传递,然后 const 是必不可少的。

关于c++ - std::basic_string 中的 push_back() 与序列容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35288957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com