gpt4 book ai didi

c++ - 集合中元素的子串

转载 作者:行者123 更新时间:2023-11-27 23:56:54 29 4
gpt4 key购买 nike

有没有办法在集合中查找和替换 char*/string 的子集?

例子:

std::set<char*> myset; 
myset.insert("catt");
myset.insert("world");
myset.insert("hello");

it = myset.subsetfind("tt");
myset.replace(it, "t");

最佳答案

至少有三个原因导致这行不通。

  1. std::set 只提供了在集合中搜索与要搜索的值相等的值的方法,而不是与集合的任意部分匹配的值的方法值(value)。

  2. 显示的程序是未定义的行为。字符串字面量,例如“hello”,是 const char *,而不是 char *。没有自尊的 C++ 编译器会允许您将 const char * 插入到 char * 的容器中。而且根据定义,您无论如何都不能修改 const 值。

  3. std::set 中的值无法修改。要影响集合中现有值的修改,它必须被erase()d,然后是新值insert()ed。

std::set 根本不是您要实现的目标的正确容器。

关于c++ - 集合中元素的子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42028946/

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