在C++中,'sort(str.开始(),str.end())'和'sort(std::begin(str),std::end(str))'有什么区别?或者它们是相同的,如果是,为什么?[duplicate]

piok6c0g  于 2023-01-06  发布在  其他
关注(0)|答案(2)|浏览(167)
    • 此问题在此处已有答案**:

Difference between vector::begin() and std::begin()(2个答案)
2天前关闭。
在C++中使用sort(str.begin(), str.end())和使用sort(std::begin(str), std::end(str))有什么区别?
这两个函数都给出了与排序字符串相同的结果,但两者之间有什么区别吗?为什么两者都有?

46scxncf

46scxncf1#

同样的,但是如果你写begin(str),它也可以处理数组,如果str是一个数组,那么str.begin()就不起作用,因为数组不是一个类,所以有些人喜欢写begin(str)

9jyewag0

9jyewag02#

std::begin的c++参考中,对于非数组:
1.精确返回c.开始(),它通常是c表示的序列开头的迭代器。如果C是标准容器,则当c不是常量限定时返回C::iterator,否则返回C::const_iterator。
因此,对于std::string字符串使用str.begin()std::begin(str)是完全相同的。

相关问题