- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main(void)
{
string temp;
vector<string> encrypt, decrypt;
int i,n, co=0;
cin >> n;
for(i=0;i<n;i++)
{
cin >> temp;
encrypt.push_back(temp);
}
for(i=0;i<n;i++)
{
cin >> temp;
decrypt.push_back(temp);
}
for(i=0;i<n;i++)
{
temp = encrypt[i];
if((binary_search(decrypt.begin(), decrypt.end(), temp)) == true) ++co;
}
cout << co << endl;
return 0;
}
它读取两个相等的字符串列表,并打印出有多少第一个列表中的单词也在第二个列表中找到,很简单。没有给我预期的结果,我认为问题出在 binary_search 中。你能告诉我为什么吗?
最佳答案
因为字符串未在您的 vector 中排序。首先使用 std::sort
对它们进行排序.
关于c++ - binary_search 不适用于 vector <string>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2510888/
我有一个自定义类和 std::vector 填充了此类的对象。我想在此数组中执行 binary_search。 我像这样在我的类中重载了运算符: bool operator ==(const some
我想用指针实现binary_search #include #include using namespace std; int binary_p(int x[],int size,int targ
我希望这不是痛苦的显而易见。我收到此神秘错误: fold.cpp:92: error: expected primary-expression before ‘)’ token 它所指的行是: if
我有一个 vector v 类 X 的实例 class X { public: int attribute_1; ... operator==(const int i){return th
我被这个问题困住了,我正在处理位置 vector 。在一种情况下,该 vector 相对于偶“位置”的第一个分量排序,在另一种情况下相对于另一个分量排序,在这两种情况下,偶的另一个元素保持不变。所以例
这段代码有什么问题吗? bool Spellcheck::smart_comp(string value, string key){ return true; } void func(){
全部,我有这样的代码: bool ISearchable::PerformSearch(const vector &passList, const string &lname, const strin
我正在阅读有关 binary_search 的内容,然后我尝试使用谓词来实现它。这是我的代码(我还包括了我正在使用的排序谓词)。我知道小于是默认值。这是粗略的测试代码 class person { p
我目前正在考虑使用 std::binary_search()(来自库)来确定列表中是否存在某个实例。在我开始使用它之前,我想知道它是如何工作的。 我的理解是它使用比较(对于用户定义的结构/类,它需要访
我尝试制作一个程序,使用 std::binary_search 检查数字是否在向量中 我知道我可以使用 std::find , 但我听说 std::binary_search如果比 std::find
我有一个按其整数索引排序的类对象 vector 。但是对象的索引是由类的成员函数生成的 - 因此没有 int id 存储为成员变量。 class boundary { public:
我有一些数据存储在排序的 vector 中。该 vector 按某个键排序。我知道 STL 有一个算法来检查一个元素是否在这个排序列表中。这意味着我可以这样写: struct MyData { int
我在这里找到了很多关于该主题的答案,但我无法运行我的代码。 编辑:发布的示例现在可以在引入缺失的东西后使用。希望有人可以使用这个例子作为自己实验的基础。我还介绍了将此示例用作随机访问迭代器所缺少的东西
这个问题在这里已经有了答案: Where can I get a "useful" C++ binary search algorithm? (9 个回答) 关闭5年前。 我想在 binary-sea
binary_search() 函数定义在头文件中,用于查找指定区域内是否包含某个目标元素。 该函数有 2 种语法格式,分别为: //查找 [first, last) 区域内是否包含 val boo
thrust::binary_search 据我所知,除默认流外的所有段错误。我在文档中找不到任何描述这种限制的信息,所以我希望专家能启发我如何正确使用。 这是一个简单的例子。此测试代码创建一个未排序
在下面的程序中,binary_search 返回 Err(2) 而不是预期的 Ok(0)。这是错误吗? fn main() { let x = vec!["slot", "s"]; l
std::find_if 在其重载函数之一中采用谓词。绑定(bind)器使得为用户定义的类型编写 EqualityComparators 并将它们用于动态比较或静态比较成为可能。 相比之下,标准库的二
std::binary_search 击败了一个简单的自制二进制搜索算法(再次): // gcc version 4.8.2 X86_64 #ifndef EXAMPLE_COMPARE_VERSIO
在我检测到 std::upper_bound 之前,我实现了我自己的 binarySearch 版本来确定所需元素的索引。该实现有效,但与线性搜索相比,我的 binarySearch 只快了一点点。随
我是一名优秀的程序员,十分优秀!