gpt4 book ai didi

c++ - std::sort 在 c 风格的字符串上,不复制字符串

转载 作者:太空宇宙 更新时间:2023-11-04 06:16:56 24 4
gpt4 key购买 nike

我遇到了一个奇怪但非常具体的问题。作为一些背景,我需要支持一些传递大量大型 C 风格字符串的遗留代码。由于这些变得非常庞大,我想避免不必要地复制该数据,其中包括仅为一个操作复制构建 std::strings。

我想对这些字符串使用 std::sort,但它们显然缺少迭代器。然而,根据 std::sort 的文档,我应该只能为任何连续的随机存取存储器传入两个指针,但它不适用于我的 c 风格字符串

基本上是这样的:

char* foo = "test string";
std::sort(foo, foo + 11); // access violation occurs

但是:

char foo[] = "test string";
std::sort(foo, foo + 11); // perfect fine, sorted correctly

这让我更加困惑,因为据我所知,char* 和 char[] 本质上是一样的。为什么 char* 中断,而 char[] 成功?如何将 C 风格的字符串传递给 STL 算法?

24 4 0
文章推荐: c++ - 如何在一行中从不同的变量(数据类型)创建一个 char 数组?
文章推荐: javascript - 使用 Jquery 控制
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com