字符串流中检查重复项


字符串流是给定数据的顺序流,其中流的单个元素表示一个字符串。该流允许处理大量字符串数据。在 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(),分别用于指定元素的出现次数和插入。它有多种应用,例如数据处理、自然语言处理、日志分析等。

更新于: 2023年8月16日

340 次查看

开启你的 职业生涯

通过完成课程获得认证

开始
广告