社区
C++ 语言
帖子详情
如何快速从某大数组中过滤掉与某小数组中重复的数据?
ZhouQiang
2005-06-14 11:23:37
如何快速从某大数组中过滤掉与某小数组中重复的数据?
大数组:int ArrayB[] = {99, 88,1, 2, 3, 4, 5, 99,88 6, 7, 8, 9, 0, 99, 97} ;
小数组:int ArrayL[] = {99, 88} ;
如何
得到: int ArrayT[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 99, 97} ;
...全文
211
9
打赏
收藏
如何快速从某大数组中过滤掉与某小数组中重复的数据?
如何快速从某大数组中过滤掉与某小数组中重复的数据? 大数组:int ArrayB[] = {99, 88,1, 2, 3, 4, 5, 99,88 6, 7, 8, 9, 0, 99, 97} ; 小数组:int ArrayL[] = {99, 88} ; 如何 得到: int ArrayT[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 99, 97} ;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
defyer007
2005-06-16
打赏
举报
回复
不懂C#
ZhouQiang
2005-06-14
打赏
举报
回复
//我程序中的定义如下,主要是想找到一个更为快速的方法
//类似Replace("你好中国你好", "你好", "")
//但并非Replace那样简单,不是替换字符串
//已知大vector 包含语音数据----"你好中国你好"
vector <UCHAR> vecDemoData ;
//已知小vector 包含语音数据----"你好"
vector <UCHAR> vecMakeData ;
//求vector 需要生成包含语音数据----"中国"
vector <UCHAR> vecTempData ;
defyer007
2005-06-14
打赏
举报
回复
自己写的话,应该先将要过滤的大数组排序,然后可以用一些搜索算法如二分法等进行搜索,找到就去掉
thuers
2005-06-14
打赏
举报
回复
没想出什么好方法~!
关注~!
foochow
2005-06-14
打赏
举报
回复
Microsoft(R) Visual Basic(R) Scripting Edition
Replace 函数 语言参考
起始页 | 版本 2
请参阅
--------------------------------------------------------------------------------
描述
返回字符串,其中指定数目的某子字符串被替换为另一个子字符串。
语法
Replace(expression, find, replacewith[, compare[, count[, start]]])
Replace 函数的语法有以下参数:
参数 描述
expression 必选。 字符串表达式 包含要替代的子字符串。
find 必选。被搜索的子字符串。
replacewith 必选。用于替换的子字符串。
start 可选。expression 中开始搜索子字符串的位置。如果省略,默认值为 1。在和count 关联时必须用
count 可选。执行子字符串替换的数目。如果省略,默认值为 -1,表示进行所有可能的替换。在和 start 关联时必须用。
compare 可选。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。如果省略,缺省值为 0 ,这意味着必须进行二进制比较。
设置
compare 参数可以有以下值:
常数 值 描述
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文本比较。
返回值
Replace 返回以下值:
如果 Replace 返回
expression 为零长度 零长度字符串 ("")。
expression 为 Null 错误。
find 为零长度 expression 的副本。
replacewith 为零长度 expression 的副本,其中删除了所有由 find 参数指定的内容。
start > Len(expression) 零长度字符串。
count 为 0 expression 的副本。
说明
Replace 函数的返回值是经过替换(从由 start 指定的位置开始到 expression 字符串的结尾)后的字符串,而不是原始字符串从开始至结尾的副本。
下面的示例利用 Replace 函数返回字符串:
Dim MyString
'二进制比较从字符串左端开始。返回 "XXYXXPXXY"。
MyString = Replace("XXpXXPXXp", "p", "Y")
'文本比较从第三个字符开始。返回 "YXXYXXY"。
MyString = Replace("XXpXXPXXp", "p", "Y", 3, -1, 1)
--------------------------------------------------------------------------------
(C) 1998 Microsoft Corporation. All rights reserved. Terms of Use.
ZhouQiang
2005-06-14
打赏
举报
回复
对速度要求很高,应用到过滤一个大语音文件中包含的某些语音。
improgrammer
2005-06-14
打赏
举报
回复
跟字符串的replace算法是一样的啊。
replace(ArrayB, ArrayL, "");
daikaiming
2005-06-14
打赏
举报
回复
up
ZhouQiang
2005-06-14
打赏
举报
回复
//下面是我在C#中的实现,但现在我想用C++实现
//------------------------------------------------------------------------
// 语音合成处理函数
public static string TextToSpeech(string VocText)
{
//初始化
...
//变量
string strDemo = "你好" ;
string strMake = "你好中国你好" ;
string wavDemo = Application.StartupPath + "\\Demo.wav" ;
string wavMake = Application.StartupPath + "\\Make.wav" ;
string wavFinal = Application.StartupPath + "\\Final.wav" ;
//删除临时文件
...
//生成演示语音
TxtToWav(strDemo, wavDemo) ;
//生成合成语音
TxtToWav(strMake, wavMake) ;
//演示语音
FileStream fsDemo = new FileStream(wavDemo, FileMode.Open) ;
BinaryReader brDemo = new BinaryReader(fsDemo) ;
byte[] ByteArrayTitle = new byte[44] ;
fsDemo.Seek(0, SeekOrigin.Current) ;
ByteArrayTitle = brDemo.ReadBytes(44) ;
int LengthDemo = (int)fsDemo.Length - 44 ;
byte[] ByteArrayDemo = new byte[LengthDemo] ;
fsDemo.Seek(44, SeekOrigin.Current) ;
ByteArrayDemo = brDemo.ReadBytes((int)fsDemo.Length - 44) ;
fsDemo.Close() ;
//生成语音
FileStream fsMake = new FileStream(wavMake, FileMode.Open) ;
BinaryReader brMake = new BinaryReader(fsMake) ;
int LengthMake = (int)fsMake.Length - 44 ;
byte[] ByteArrayMake = new byte[LengthMake] ;
fsMake.Seek(44, SeekOrigin.Current) ;
ByteArrayMake = brMake.ReadBytes((int)fsMake.Length - 44) ;
fsMake.Close() ;
//以字符串形式替换生成语音中的部分语音
string tmpDemo = Encoding.Unicode.GetString(ByteArrayDemo) ;
string tmpMake = Encoding.Unicode.GetString(ByteArrayMake) ;
string strFinal = tmpMake.Replace(tmpDemo, "") ;
//最终语音
FileStream fsFinal = new FileStream(wavFinal, FileMode.Create) ;
BinaryWriter bwValue = new BinaryWriter(fsFinal) ;
//00-03
fsFinal.Write(ByteArrayTitle, 0, 4) ;
//04-07
bwValue.Write(strFinal.Length * 2 + 36) ; //08-39
fsFinal.Write(ByteArrayTitle, 8, 32) ; //40-43
bwValue.Write(strFinal.Length * 2) ;
//Vioce Data
byte[] ByteArrayFinal = Encoding.Unicode.GetBytes(strFinal) ;
//44-->
fsFinal.Write(ByteArrayFinal, 0, ByteArrayFinal.Length) ; fsFinal.Close() ;
//结束
...
return wavFinal ;
}
c++与人工智能
立足于大数定律的统计规律是当前成熟AI产品的理论基础之一。 1、C++程序设计技术与计算机软件行业发展趋势介绍2、C++技术与人工智能在主流行业中的已有应用3、从算法到人工智能::如何真正实现随机生成?来自扫雷游戏的启示4、智能语音应答的技术解决方案:QQ自动聊天是如何实现的5、Python人工智能编程语言的宠儿—python是用C写的?:python调用c++三维引擎
【JS】js
过滤
两个
数组中
,相同的项
介绍了JS
过滤
出两个
数组中
的相同元素的方法,示例代码详细
JS 一个数组
过滤
另一个数组
let ids = [1,2,3,2]; let arr = [1,2,3,4]; let newArray = []; arr.forEach(item => { if (!ids.includes(item)) { //此处如果需要留下
重复
元素 newArray.push(item); }; }) console.log(newArray);
面试官:如何从10亿
数据
中
快速
判断是否存在某一个元素?
面试官:如何从10亿
数据
中
快速
判断是否存在某一个元素? 面试官:如何从10亿
数据
中
快速
判断是否存在某一个元素? 前言 当 Redis 用作缓存时,其目的就是为了减少
数据
库访问频率,降低
数据
库压力,但是假如我们某些
数据
并不存在于 Redis 当中,那么请求还是会直接到达
数据
库,而一旦在同一时间大量缓存失效或者一个不存在缓存的请求被恶意攻击访问,这些都会导致
数据
库压力骤增,这又该如何防止呢? 缓存雪崩 缓存雪崩指的是 Redis 当中的大量缓存在同一时间全部失效,而假如恰巧这一段时间同时又有大量请求被发起,那么
海量
数据
去重hash与布隆
过滤
器
海量
数据
去重hash与布隆
过滤
器背景缓存穿透需求set和mapunordered_map总结布隆
过滤
器代码 背景 在使⽤word⽂档时,word如何判断某个单词是否拼写正确? ⽹络爬⾍程序,怎么让它不去爬相同的url⻚⾯?允许有误差 垃圾邮件(短信)
过滤
算法如何设计?允许有误差 公安办案时,如何判断某嫌疑⼈是否在⽹逃名单中?控制误差 假阳率 缓存穿透问题如何解决?允许有误差 缓存穿透 描述缓存场景,为了减轻落盘
数据
库(mysql)的访问压⼒,在server端与mysql之间加⼊⼀层缓冲
数据
层(⽤来存
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章