search查找,如果没有成功匹配,返回的指针处理

来源:10-7 STL容器的统计与二分查找

慕少7118645

2021-04-16

对比与binary_search,匹配到返回1,没匹配到返回0,在业务处理时,这个结果分析起来比较直观。

执行search查找后,即使没有匹配结果,也返回了一个地址(指针),也可进行解引用操作获得一个值。那么,在后面处理业务时,相对binary_search来说,用search的结果来分析不太直观。

说通俗一点,通过search返回的地址值,我想很直观的判断出,这次查询,匹配到了结果。

希望老师分享一下经验。

写回答

1回答

quickzhao

2021-04-16

这个问题问的很好。一般是这样的,我们在考虑函数返回信息时既需要来记录函数执行的状态,同时也需要在成功时返回一些有效信息或失败时将错误信息返回。但不同的系统有不同实现的方案,C语言在早期时会通过一个全局变量来记录返回信息,而C++返回的方式也有引用,结构体等多种。这里有点不一样,它需要考虑到STL的整体架构,我这里例子举的不好,正常这里需要通过search方法返回时是否指向迭代器的尾部来判断是否找到,返回尾部说明没找到,否则返回的是第一次匹配的迭代器位置,这时STL的标准做法。

2
1
慕少7118645
验证了一遍,感谢
2021-04-16
共1条回复

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程