字符串流中检查重复项
字符串流是给定数据的顺序流,其中流的单个元素表示一个字符串。该流允许处理大量字符串数据。在 C++ 中,我们有一些基于 STL(标准模板库)的函数,例如 count() 和 insert(),用于检查字符串流中的重复项。
使用标准模板库
该程序使用 C++ STL 设置头文件 unordered,表示唯一的键元素,并帮助解决字符串流中的重复项。
语法
以下语法在示例中使用 -
static unordered_set<data_type> unq_string;
unq_string 是静态数据类型的变量声明,这意味着一旦声明,变量和成员函数都不能被修改。unordered_set 是一个容器数据结构,它只设置唯一元素。
count()
count() 是 C++ STL 的预定义函数,它返回给定数组字符串中元素的出现次数。
insert()
insert() 是 C++ STL 的另一个预定义函数,可用于在特定元素之前添加元素。
算法
以下步骤为 -
步骤 1:通过提及必要的头文件(如 iostream、unordered_set 和 string)来启动程序。
步骤 2:然后使用函数定义 check_dup_element(),它接受类型为 const string& 的参数 s 以对字符串重复操作进行处理。
步骤 3:初始化容器数据结构“static unordered_set<data_type> unq_string;”,它处理代码的主要功能。
步骤 4:接下来,使用 if 语句,它根据给定字符串(即变量 s)中重复的字符串设置条件。如果找到重复的字符串,它将打印语句“找到重复的元素”,否则它将使用内置函数 insert() 和静态变量(即 unq_string),该函数仅添加字符串中存在的唯一元素,并打印语句“找到唯一元素”。
步骤 5:现在启动主函数并将数组元素存储在类型为 string 的变量 str 中。然后查找数组的大小并存储在变量 n 中。
步骤 6:继续使用 for 循环,该循环使用名为 check_dup_element() 的调用函数,该函数接受 str[i] 作为参数,其中变量 i 遍历输入字符串并显示结果。
示例
在以下示例中,我们将使用静态变量
#include <iostream> #include <unordered_set> #include <string> using namespace std; void check_dup_element(const string& s) { static unordered_set<string> unq_string; // Check if the string is already present in the set if (unq_string.count(s) > 0) { cout << "The repeated element found" << endl; } else { unq_string.insert(s); cout << "The unique element found" << endl; } } // Start the main function int main() { string str[] = {"A", "B", "C", "C","A","D"}; // Find the size of an array int n = sizeof(str) / sizeof(str[0]); // Iteration of each element from the string for (int i = 0; i < n; i++) { check_dup_element(str[i]); } return 0; }
输出
The unique element found The unique element found The unique element found The repeated element found The repeated element found The unique element found
结论
我们探讨了字符串流重复的概念,以从给定的字符串数组中查找重复的元素。该程序使用了一些预先存在的内置函数,例如 count() 和 insert(),分别用于指定元素的出现次数和插入。它有多种应用,例如数据处理、自然语言处理、日志分析等。