【发布时间】:2018-09-17 15:23:09
【问题描述】:
我正在使用 C++ 中的字符数组的一部分,并试图找出最简单的方法来做到这一点。我知道在 Python 中你可以简单地做一些类似 str[1:] 的事情,它会给你除了第一个位置之外的整个数组,并且想知道 C++ 是否有任何类似物,或者如果没有,实现这个的最简单方法是什么。
【问题讨论】:
-
您可以通过迭代器和范围获得类似的东西,但更冗长。例如,
std::next(std::begin(str), 1)到std::end(str)的范围将是str,但第一个元素除外。 -
在大多数通过命名子字符串操作表示的语言中,名称如
substr、left、mid、right。第一个来自 C++,后三个来自一些 Basic。为了提高效率,请查看std::string_view。 -
你可以使用
std::string::substr(1)。 -
在 C++17 中有
std::strigng_view(或者对于旧的 C++ 版本提升strigng_view)。还有类似std::valarray的东西,其中slice的功能与python 运算符[]非常相似。 -
注意:Python 中的这个特性称为切片。只是想我会给您这个术语,以便您将来可以进行更有效的搜索。
标签: python c++ arrays string indexing