Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >集合中元素的子串

集合中元素的子串
EN

Stack Overflow用户
提问于 2017-02-03 16:39:23
回答 4查看 951关注 0票数 0

有没有办法在一个集合中找到并替换char*/string的子集?

示例:

代码语言:javascript
运行
AI代码解释
复制
std::set<char*> myset; 
myset.insert("catt");
myset.insert("world");
myset.insert("hello");

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

回答 4

Stack Overflow用户

发布于 2017-02-03 16:45:34

至少有三个原因可以解释为什么这个方法行不通。

  1. std::set只提供了在集合中搜索与所搜索的值相等的值的方法,而不提供与值的某个任意部分匹配的值。
  2. 所显示的程序是未定义的行为。字符串文字,例如"hello“是一个const char *,而不是一个char *。没有一个自重的C++编译器会允许您将const char *插入到char *的容器中,并且您不能修改const的值,根据定义,std::set中的anyway.
  3. Values是不能修改的。要修改集合中的现有值,必须先是insert()ed.

()d,然后是新值erase

对于您试图实现的目标,std::set根本不是合适的容器。

票数 1
EN

Stack Overflow用户

发布于 2017-02-03 16:46:17

不,你不能(或者至少不应该)修改在集合中的键。这样做可能会更改元素的相对顺序,在这种情况下,修改会使集合无效。

您需要从一组可以修改的内容开始。然后,您需要搜索该项,将其从集合中删除,对其进行修改,然后将结果重新插入到集合中。

代码语言:javascript
运行
AI代码解释
复制
std::set<std::string> myset {"catt", "world", "hello"};
auto pos = std::find_if(myset.begin(), myset.end(), [](auto const &s) { return s.find("tt");};

if (pos != myset.end()) {
    auto temp = *pos;
    myset.remove(pos);
    auto p= temp.find("tt");
    temp.replace(p, 2, "t");
    myset.insert(temp);
}
票数 1
EN

Stack Overflow用户

发布于 2017-02-03 16:48:18

不能修改集中的元素。

您可以使用std::find_if查找包含子字符串的字符串。一旦找到匹配的元素,就可以从集合中删除每个元素,并添加一个修改后的字符串副本,并将子字符串替换为其他内容。

PS。请记住,您不能修改字符串文字。您将需要为字符串分配一些内存。

PPS。自从char*被标准化以来,字符串文字到C++的隐式转换一直被弃用,而且自C++11以来,这种转换是病态的。

PPPS。当您使用指针作为元素类型时,默认比较器将不正确。我建议您改用std::string。(基于strcmp的比较器方法也是可能的,尽管更容易出现内存错误)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42028946

复制
相关文章
使用dplyr进行数据转换
dplyr最常用的5个函数: • 按值筛选观测(filter())。 • 对行进行重新排序(arrange())。 • 按名称选取变量(select())。 • 使用现有变量的函数创建新变量(mutate())。 • 将多个值总结为一个摘要统计量(summarize())。 函数的使用方法: (1) 第一个参数是一个数据框。 (2) 随后的参数使用变量名称(不带引号)描述了在数据框上进行的操作。 (3) 输出结果是一个新数据框。
生信编程日常
2020/04/01
1.1K0
java小技能:对list集合根据条件进行分组、过滤和字段筛选
需求:修改代理商角色权限时,判断是否存在权限被移除,如果存在,则穿透删除所有下级代理商相对应的权限值。
公众号iOS逆向
2022/12/19
6.6K0
java小技能:对list集合根据条件进行分组、过滤和字段筛选
使用SnpSift filter对VCF文件进行筛选
当完成突变位点注释之后,我们会得到一个巨大的VCF文件,文件大小从几十M到几十G不等。在数量如此多的突变位点中,我们只会根据注释结果从中挑选部分感兴趣的突变位点,这就要求对VCF文件进行过滤。如此大的文件用Excel 操作是不现实的,脚本语言处理大文件时效果也不尽人意,所以SnpEff的开发团队专门开发了一款工具,叫做SnpSift, 用来对VCF文件进行过滤。
生信修炼手册
2020/05/11
3.2K0
如何使用EvtMute对Windows事件日志进行筛选过滤
在这篇文章中,我们将告诉大家如何使用EvtMute来对Windows事件日志进行筛选过滤。EvtMute这款工具允许我们使用YARA来进行攻击性操作,并对已经报告给Windows事件日志的事件进行过滤和筛选。
FB客服
2021/03/09
1K0
如何使用EvtMute对Windows事件日志进行筛选过滤
数据库按条件查询语句_sql多条件筛选语句
在SQL中,insert、update、delete和select后面都能带where子句,用于插入、修改、删除或查询指定条件的记录
全栈程序员站长
2022/10/03
4.1K0
数据库按条件查询语句_sql多条件筛选语句
使用SQL语句如何实现条件判断
客户需求是咨询如何用SQL结合decode函数实现条件判断,比如当某一列数值大于500,对应类型“大于500”;当某一列数值小于500,对应类型“小于500”。 实际decode函数无法实现这个功能,实现要用到case when,为此我构造一个简单的示例来直观演示:
Alfred Zhao
2019/05/24
2.5K0
R语言︱数据集分组、筛选(plit – apply – combine模式、dplyr、data.table)
大型数据集通常是高度结构化的,结构使得我们可以按不同的方式分组,有时候我们需要关注单个组的数据片断,有时需要聚合不同组内的信息,并相互比较。
悟乙己
2019/05/28
21.1K0
使用 QueryBuilder 构造复杂的数据筛选语句
QueryBuilder 是一个常用的过滤器的 UI 组件,本文从前后端和数据库查询的角度总结了一些使用经验,包括一些踩坑的心得。
windseeker
2021/12/01
7.1K0
使用 QueryBuilder 构造复杂的数据筛选语句
sql对多个条件进行分组求和_分组求和法例题附答案
大家好,又见面了,我是你们的朋友全栈君。 在ireport中实现分组,求和。效果如下 name total A 2 A 3 subtotal 5 B 4 B 5 subtotal 9 添加Document–>Variables–>Variable Name 建立自定义的求和函数 设置相关属性。 Calculation 设置为sum reset type为report Reset group 选择自己创建的分组。 increment type 为Group Variable Expression填写你要累计的对象表达式。 new Integer($F{rxNo}) Initial Value Expression处填写数据类型的初始化对象。 new java.lang.Integer(0)
全栈程序员站长
2022/10/03
3K0
使用FILTER函数筛选满足多个条件的数据
其中,参数数组,是想要筛选的数据,可以是单元格区域或者数组。参数包括,指定筛选的条件,应返回TRUE,以便将其包含在查询中。参数是否为空,如果没有满足筛选条件的结果,则可以给该参数指定要返回的内容,可选。
fanjy
2023/09/15
4K0
使用FILTER函数筛选满足多个条件的数据
使用dplyr进行数据分析:入门篇
tidyverse系列应该算是R语言数据分析中的瑞士军刀了,统一的格式,简洁的代码,管道符便于阅读的形式,都能让大家快速上手。R数据科学就是专门讲这个系列的,但是对于很多函数的用法和细节问题,都没有说,所以在使用时还是会经常遇到各种问题。
医学和生信笔记
2022/11/14
1.5K0
Power Pivot中筛选条件的使用
在Power Pivot中,在大部分时间里,筛选是作为一个主要的功能运用到各个地方,筛选上下文,行上下文都和筛选相关。
逍遥之
2020/03/23
5.1K0
使用Evaluate方法筛选数据——基于两个条件
中,我们讨论了不使用筛选器而筛选数据的方法技巧,它可以替代自动筛选方法。这里我们进一步以示例扩展这个技巧。
fanjy
2022/11/16
1.6K0
使用Evaluate方法筛选数据——基于两个条件
使用 Python 对相似索引元素上的记录进行分组
在 Python 中,可以使用 pandas 和 numpy 等库对类似索引元素上的记录进行分组,这些库提供了多个函数来执行分组。基于相似索引元素的记录分组用于数据分析和操作。在本文中,我们将了解并实现各种方法对相似索引元素上的记录进行分组。
很酷的站长
2023/08/11
6930
使用 Python 对相似索引元素上的记录进行分组
dplyr强大的分组汇总
在现实生活中我们经常会遇到非常多需要分组汇总的情况,单个的汇总价值不大,只有分组之后,才能看出差异,才能表现出数据的价值。
医学和生信笔记
2022/11/15
1.8K0
如何使用Python对Instagram进行数据分析?
我写此文的目的在于展示以编程的方式使用Instagram的基本方法。我的方法可用于数据分析、计算机视觉以及任何你所能想到的酷炫项目中。 Instagram是最大的图片分享社交媒体平台,每月活跃用户约五亿,每日有九千五百万的图片和视频被上传到Instagram。其数据规模巨大,具有很大的潜能。本文将给出如何将Instagram作为数据源而非一个平台,并介绍在项目中使用本文所给出的开发方法。 API和工具简介 Instagram提供了官方API,但是这些API有些过时,并且当前所提供的功能也非常有限。因此在
小莹莹
2018/04/24
2.9K0
如何使用Python对Instagram进行数据分析?
对 list 中的相同数据进行分组
同一组数据分组 需求:一个 list 里可能会有出现一个用户多条数据的情况。要把多条用户数据合并成一条。 思路:将相同的数据中可以进行确认是相同的数据,拿来做分组的 key,这样保证不会重。 实际中使用,以用户数据为例,可能用户名和身份证号是不会变的,用这两个条件拼接起来。
潇洒
2019/06/28
6.1K0
如何使用cdn对网站进行加速
今天抽空整理下网站,时间太久,历史文件太多,删除了一些无用的垃圾,更换了服务器,调整了cdn,鼓捣2天,更换好目前感觉良好。
霍常亮
2020/07/19
17.6K0
如何使用cdn对网站进行加速
使用 Python 对相似的开始和结束字符单词进行分组
在 Python 中,我们可以使用字典和循环等方法、利用正则表达式和实现列表推导等方法对具有相似统计和结束字符的单词进行分组。该任务涉及分析单词集合并识别共享共同开始和结束字符的单词组。这在各种自然语言处理应用程序中可能是一种有用的技术,例如文本分类、信息检索和拼写检查。在本文中,我们将探讨这些方法,以在 Python 中对相似的开始和结束字符单词进行分组。
很酷的站长
2023/08/11
3530
使用 Python 对相似的开始和结束字符单词进行分组
点击加载更多

相似问题

使用if语句和条件进行筛选: dplyr管道

14

使用dplyr对组织结构进行分组和筛选

15

使用dplyr和语句进行筛选

11

使用dplyr进行分组和筛选数据管理

22

使用dplyr使用测试条件进行r-筛选数据

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档