C++程序将数组转换为集合(哈希集合)

c++程序将数组转换为集合(哈希集合)

数组是 C++ 中可用的数据结构,用于保存相同类型元素的顺序集合。数组的大小是固定的,但可以根据需要扩展或缩小。将数组视为相同类型变量的集合很重要,即使它用于存储数据集合。集合(或者在本例中为无序集合)是一种以任意顺序存储特定数据类型的元素的容器。哈希表用于实现 unordered_set,其中键被哈希到哈希表索引中,以帮助确保插入始终是随机的。

可以使用我们进一步讨论的各种方法来完成从数组到无序集的转换

将数组元素一一插入到集合中

将数组转换为无序集的最简单方法是使用 for 循环并将每个数组元素单独插入到无序集中。接下来我们看一下语法和算法。

语法

int ip[] = ;   unordered_set op;   for( int i : ip) {      op.insert(i);}

算法

在整数数组 ip 中获取输入。定义一个 unordered_set 操作。对于数组 ip 中的每个元素 i,执行 -将 IP 插入 op。显示op的内容。

示例

#include using namespace std;template  unordered_set solve( int (&ip)[N] ){   //an unorderd set is declared   unordered_set op;      //each element is inserted using insert function   for(int i : ip) {      op.insert(i);   }   return op;}int main(){   int ip[] = {50, 80, 90, 40, 30};   unordered_set op = solve(ip);   //display the input   cout<< "The input array is: ";   for(int i : ip) {      cout<< i << " ";   }   //display the output   cout<< "nThe output set is: ";   for(int j : op) {      cout<< j << " ";   }   return 0;}

输出

The input array is: 50 80 90 40 30 The output set is: 30 40 90 50 80

我们声明了一个整数数组 ip 并迭代数组中的所有元素。我们将输出集声明为 op,并使用容器中可用的插入函数将每个元素插入到无序集中。我们可以看到的结果是一组无序的值,这些值也存在于数组中。

立即学习“C++免费学习笔记(深入)”;

使用范围构造函数构造集合

还可以使用其范围构造函数创建 unordered_set。范围构造函数有两个输入;输入数组的起始指针以及加上起始指针的输入数组的大小。

语法

int ip[] = ;int n = sizeof(ip) / sizeof(ip[0]);std::unordered_set op(ip, ip + n);

算法

在整数数组 ip 中获取输入。使用 sizeof 运算符确定输入数组的大小。将数组的大小分配给整数变量 n。使用数组起始指针和数组大小构造一个 unordered_set 操作。显示op的内容。

示例

#include using namespace std;template  unordered_set solve(int (&ip)[N]) {   //the size is determined of the input array   int n = sizeof(ip) / sizeof(ip[0]);   //output set is constructed using range constructor   std::unordered_set op(ip, ip + n);   return op;}int main(){   int ip[] = {30, 20, 50, 10, 70};   unordered_set op = solve(ip);   //display the input   cout<< "The input array is: ";   for(int i : ip) {      cout<< i << " ";   }     //display the output   cout<< "nThe output set is: ";   for(int j : op) {      cout<< j << " ";   }   return 0;}

输出

The input array is: 30 20 50 10 70 The output set is: 70 10 50 20 30

在此示例中,我们必须使用 sizeof 函数确定数组的大小。我们将大小分配给变量 n 并使用指针 ip 和 ip + n 创建 unordered_set操作。

结论

unordered_set 能够包含任何类型的数据。要更改它所保存的数据类型,我们必须更改 中包含的数据类型。该容器很好地支持原始类型和用户定义类型。实际上,unordered_set 工作得很好,通常提供恒定时间的搜索操作。 unordered_set 上的所有操作通常都需要恒定时间 O(1),尽管在最坏的情况下,它们可能需要长达线性时间 O(n),具体取决于内部哈希函数。

以上就是C++程序将数组转换为集合(哈希集合)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1445296.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 22:23:11
下一篇 2025年12月10日 18:19:25

相关推荐

  • 使用C++编写,找到数组中的素数对数量

    在本文中,我们将解释有关使用 C++ 查找数组中素数对数量的所有内容。我们有一个整数数组 arr[],我们需要找到其中存在的所有可能的素数对。这是问题的示例 – Input : arr[ ] = { 1, 2, 3, 5, 7, 9 }Output : 6From the given a…

    2025年12月17日
    000
  • 在给定的数组中找到最后一个回文字符串

    在这个问题中,我们需要找到数组中的最后一个回文字符串。如果任何字符串在读取时相同,无论是从头开始读取还是从末尾开始读取,都可以说该字符串是回文。我们可以比较起始字符和结束字符来检查特定字符串是否是回文。查找回文字符串的另一种方法是将字符串反转并与原始字符串进行比较。 问题陈述 – 我们给…

    2025年12月17日
    000
  • 按照给定的查询重新排列和更新数组元素

    在这个问题中,我们将对数组元素执行给定的查询。查询包含数组元素的循环左旋转、右旋转和更新。 解决问题的逻辑部分是数组旋转。向左旋转数组的简单方法是将每个元素替换为下一个元素,将最后一个元素替换为第一个元素。 我们可以使用deque数据结构来高效地旋转数组。 问题陈述 – 我们给出了一个包…

    2025年12月17日
    000
  • 将C程序转换为机器码的四个步骤是什么?

    创建和运行程序的过程 程序包含一组用编程语言编写的指令。 程序员的工作是编写和测试程序。 将’C’程序转换为机器语言的4个步骤是: 编写和编辑程序编译程序链接程序执行程序 编写和编辑程序 使用文本编辑器编写程序。 借助文本编辑器,用户可以输入、更改和存储字符数据。 所有特殊的…

    2025年12月17日
    000
  • C++程序:在数组中找到最大的可整除子集

    本教程将讨论一个问题,其中给定一个不同的正整数数组。我们需要找到最大的子集,使得每对较大的元素除以较小的元素,例如 – Input: nums[ ] = { 1, 4, 2, 6, 7}Output: 1 2 4Explanation:All Divisible subsets are:…

    2025年12月17日
    000
  • C++程序:对数组元素进行升序排序

    为了有效地解决一些问题,将数据项排列在正确的位置非常重要顺序。最流行的排列问题之一是元素排序问题。这本文将演示如何在 C++ 中按升序排列数组成员(根据值不断上升)。 要按特定顺序排列数字或非数字元素,有多种方法排序算法可用于该领域。只需两种简单的排序技术即可将在本文中介绍。选择排序和冒泡排序。让我…

    2025年12月17日
    000
  • 将以下内容翻译为中文:C++程序将字符串转换为浮点数

    C++ 中使用静态类型。为了编写程序,变量必须定义为特定类型。有时必须读取来自控制台或文件的输入。在这种情况下,程序被赋予字符串数据。需要特殊操作才能将它们转换为其他数据类型。本文将提供将字符串转换为浮点整数的 C++ 方法。可以使用几种不同的方法来实现此目的。分别探索它们中的每一个。 在 C++ …

    2025年12月17日
    000
  • 将1转换为N的最小成本,可以通过乘以X或数字的右旋转来实现

    我们可以使用以下技术来找到乘以 X 或将其数字从 1 右旋转到 N 的最便宜方法。要监控初始最低成本,请创建一个成本变量。当从 N 到 1 时,检查每个阶段 N 是否被 X 整除。如果是,则将 N 除以 X 来更新它并继续该过程。如果 N 不能被 X 整除,则将 N 的数字向右循环以增加其值。在这种…

    2025年12月17日
    000
  • 将C/C++程序转换为预处理器代码

    这里我们将看到如何从 C 或 C++ 程序的源代码生成预处理或预处理器代码。 要使用 g++ 编译器查看预处理代码,我们必须使用 ‘-E ‘ 选项与 g++。 预处理器包含代码中的所有 # 指令,并且还扩展了 MACRO 函数。 语法 g++ -E program.cpp 示…

    2025年12月17日
    000
  • 将给定的字符串转换为T,通过任意次数替换字符串之间的字符

    转换字符串意味着我们必须根据给定条件将其与给定字符串相同。在这个问题中,我们给出了一个由字符串“arr”和大小为“M”的字符串“T”组成的数组。我们的任务是检查是否可以通过从数组的字符串( arr[i] )中删除任何字符并将该字符插入到另一个字符串的任何索引中来使数组中存在的所有字符串与给定的字符串…

    2025年12月17日
    000
  • C++程序将向量转换为列表

    C++ 中的向量是动态数组,可以包含任何类型的数据,可以是用户定义的或原始的。动态是指向量的大小可以根据操作增加或减少。向量支持各种函数,数据操作非常容易。另一方面,列表是与向量相同的容器,但与向量的数组实现相比,列表实现是基于双向链表的。列表在其中的任何位置都提供相同的恒定时间操作,这是使用列表的…

    2025年12月17日
    000
  • 找到C++中修改后数组的最小值的最大可能值

    在这个问题中,我们给定一个大小为 n 的数组 arr[] 和一个数字 S。我们的任务是找到修改后的数组的最小值的最大可能值。 p> 这里是修改数组的规则, 修改前后数组元素之和应为S。 修改后的数组中不允许有负值。 如果修改后的数组,需要数组的最小值最大化。 立即学习“C++免费学习笔记(深入…

    2025年12月17日
    000
  • 如何在C语言中将整个数组作为参数传递给函数?

    数组 数组是一组具有相同名称的相关项。以下是将数组作为参数传递给函数的两种方式: 将整个数组作为参数传递给函数将单个元素作为参数传递给函数 将整个数组作为参数传递给函数 要将整个数组作为参数传递,只需在函数调用中发送数组名称。 要接收一个数组,必须在函数头中声明。 示例1 #includemain …

    2025年12月17日
    000
  • 根据给定条件,从数组中构建一个长度为K的二进制字符串

    在本教程中,我们需要构造一个长度为 K 的二进制字符串,如果使用数组元素可以实现等于 I 的子集和,则它的第 i 个索引处应包含“1”。我们将学习两种解决问题的方法。在第一种方法中,我们将使用动态规划方法来检查子集和等于索引“I”是否可能。在第二种方法中,我们将使用位集通过数组元素查找所有可能的和。…

    2025年12月17日
    000
  • C++程序在数组开头添加元素

    通过使用数组和数据结构,可以在多个内存位置上存储同质(相同)数据。使用数组的关键好处是我们可以使用索引参数从任何位置检索它们。这种数据结构变得线性,因为数据必须逐步插入和提取。我们只需要将该元素的索引或位置号放在方括号内,就可以从数组中检索它。在本文中,我们将使用数组A和另一个元素e。我们将在C++…

    2025年12月17日
    000
  • 使用C++找到数组中唯一配对的数量

    我们需要适当的知识才能在 C++ 的数组语法中创建几个唯一的对。在查找唯一对的数量时,我们计算给定数组中的所有唯一对,即可以形成所有可能的对,其中每个对应该是唯一的。例如 – Input : array[ ] = { 5, 5, 9 }Output : 4Explanation : Th…

    2025年12月17日
    000
  • 一个数组可以重复分割成具有相等和的子数组的次数

    在C++中,我们有一个vector头文件,可以在运行时更改数组的大小。在本文中,我们将学习数组可以重复分割成具有相等和的子数组的次数的概念。 Let’s take an example to show an array partition with an equal sum. 给定的数组是{1,2,…

    2025年12月17日
    000
  • C程序用于在数组中找到第二大和第二小的数字

    输入数组元素,然后使用交换技术按降序排列数字。随后,在索引位置的帮助下,尝试打印数组中第二大和第二小的元素。 数组用于保存同一个名称下的一组公共元素。 数组用于保存同一个名称下的一组公共元素。 p> C 语言中的数组操作如下 – 插入删除搜索 li> 算法 下面给出的是一种查…

    2025年12月17日
    000
  • 用C++编写一个程序,找出数组中所有元素对之间第k小的差值

    假设我们有一个包含多个整数的列表。我们必须找出数组中每对值之间的差异,并找出第 k 个最小的差异数。索引从 0 开始,值 k 作为输入提供给我们。 因此,如果输入类似于numbers = {2, 6, 4, 8}, k = 2,那么输出将为 2。 两对之间的差异为 – (2, 6) = …

    2025年12月17日
    000
  • C程序在数组中找到最小和最大的质数

    问题陈述 给定一个包含 n 个正整数的数组。我们必须找到素数具有最小值和最大值的数字。 如果给定的数组是 – arr [] = {10, 4, 1, 12, 13, 7, 6, 2, 27, 33}then minimum prime number is 2 and maximum pr…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信