0

0

C++程序将列表转换为集合

WBOY

WBOY

发布时间:2023-09-08 09:53:03

|

2356人浏览过

|

来源于tutorialspoint

转载

c++程序将列表转换为集合

C++中的列表与向量一样是容器,但列表的实现是基于双重的 链表与向量的数组实现相比。列表一般不包含 列表中的元素分布在连续的位置 记忆。列表在其中的任何地方都提供相同的恒定时间操作,这是主要的 使用列表的特点。另一方面,集合是包含唯一值的容器 某种类型并且所有元素都按升序排序。这两个容器是 不同,但是有多种方法可以将列表转换为集合。我们讨论该方法 详情如下。

朴素方法

最简单、最幼稚的方法是定义两个不同的容器;列表类型之一 另一个是set类型,将列表的每个元素复制到集合中。

语法

list myList;
set mySet;
for ( int const &val: myList ) {
   mySet.insert(val);
}

算法

  • 在列表中获取输入。
  • 迭代列表中的每个元素并将它们插入到集合中。
  • 显示集合的内容。

示例

#include 
#include 
#include 
using namespace std;
int main(){
   
   //initializing the list
   list myList = { 10, 30, 65, 98, 76, 44, 32, 73, 81, 29 };
   set mySet;
   cout<< "The list contents are:" << endl;
   
   //displaying the list contents
   for ( int const &val: myList ) {
      cout << val << ' ';
   }
   
   //copying the elements of the list
   for ( int const &val: myList ) {
      mySet.insert(val);
   }
   cout << "\nThe set contents are:" << endl;
   for ( int const &val: mySet ) {
      cout << val << ' ';
   }
   return 0;
}

输出

The list contents are:
10 30 65 98 76 44 32 73 81 29 
The set contents are:
10 29 30 32 44 65 73 76 81 98 

使用范围构造函数

列表的开始和结束指针必须作为构造函数的参数提供 构建集合时使用范围构造函数。

语法

list myList;
set mySet(begin(myList), end(myList));

算法

  • 在列表中获取输入。

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

  • 创建集合时,将列表的开始和结束指针传递给集合的范围构造函数。

  • 显示集合的内容。

    Ke361开源淘宝客系统
    Ke361开源淘宝客系统

    Ke361是一个开源的淘宝客系统,基于最新的ThinkPHP3.2版本开发,提供更方便、更安全的WEB应用开发体验,采用了全新的架构设计和命名空间机制, 融合了模块化、驱动化和插件化的设计理念于一体,以帮助想做淘宝客而技术水平不高的朋友。突破了传统淘宝客程序对自动采集商品收费的模式,该程序的自动 采集模块对于所有人开放,代码不加密,方便大家修改。集成淘点金组件,自动转换淘宝链接为淘宝客推广链接。K

    下载

示例

#include 
#include 
#include 
using namespace std;
int main(){
   
   //initializing the list
   list myList = { 30, 70, 56, 89, 67, 44, 23, 37, 18, 92 };
   
   //using the range constructor
   set mySet(begin(myList), end(myList));
   cout<< "The list contents are:" << endl;
   
   //displaying the list contents
   for ( int const &val: myList ) {
      cout << val << ' ';
   }
   cout << "\nThe set contents are:" << endl;
   for ( int const &val: mySet ) {
      cout << val << ' ';
   }
   return 0;
}

输出

The list contents are:
30 70 56 89 67 44 23 37 18 92 
The set contents are:
18 23 30 37 44 56 67 70 89 92 

使用复制功能

C++ 中的复制函数允许将数据从一个容器复制到另一个容器。要使用 复制函数,列表的开始和结束指针必须作为参数传递 到函数以及指向集合的指针和集合内的集合的开头 插入器功能。

语法

list myList;
set mySet;
copy(begin(myList), end(myList), inserter(mySet, begin(mySet)));

算法

  • 在列表中获取输入。

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

  • 定义一个新集合。

  • 将列表的开始和结束指针以及插入器函数中的集合和集合开头的指针作为参数传递给复制函数。

  • 显示集合的内容。

示例

#include 
#include 
#include 
using namespace std;
int main(){
   
   //initializing the list
   list myList = { 33, 74, 52, 84, 65, 47, 28, 39, 13, 96 };
   set mySet;
   
   //using the copy function
   copy(begin(myList), end(myList), inserter(mySet, begin(mySet)));
   cout<< "The list contents are:" << endl;
   
   //displaying the list contents
   for ( int const &val: myList ) {
      cout << val << ' ';
   }
   cout << "\nThe set contents are:" << endl;
   for ( int const &val: mySet ) {
      cout << val << ' ';
   }
   return 0;
}

输出

The list contents are:
33 74 52 84 65 47 28 39 13 96 
The set contents are:
13 28 33 39 47 52 65 74 84 96 

结论

当我们使用集合时,我们不能向集合中添加或存储重复的元素,但是 允许重复的元素存储在列表或类似数组的数据结构中。有 在某些情况下,首选使用集合而不是列表。这些转换 我们之前见过的技术对此确实很有帮助。

相关文章

c++速学教程(入门到精通)
c++速学教程(入门到精通)

c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
treenode的用法
treenode的用法

​在计算机编程领域,TreeNode是一种常见的数据结构,通常用于构建树形结构。在不同的编程语言中,TreeNode可能有不同的实现方式和用法,通常用于表示树的节点信息。更多关于treenode相关问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

536

2023.12.01

C++ 高效算法与数据结构
C++ 高效算法与数据结构

本专题讲解 C++ 中常用算法与数据结构的实现与优化,涵盖排序算法(快速排序、归并排序)、查找算法、图算法、动态规划、贪心算法等,并结合实际案例分析如何选择最优算法来提高程序效率。通过深入理解数据结构(链表、树、堆、哈希表等),帮助开发者提升 在复杂应用中的算法设计与性能优化能力。

17

2025.12.22

深入理解算法:高效算法与数据结构专题
深入理解算法:高效算法与数据结构专题

本专题专注于算法与数据结构的核心概念,适合想深入理解并提升编程能力的开发者。专题内容包括常见数据结构的实现与应用,如数组、链表、栈、队列、哈希表、树、图等;以及高效的排序算法、搜索算法、动态规划等经典算法。通过详细的讲解与复杂度分析,帮助开发者不仅能熟练运用这些基础知识,还能在实际编程中优化性能,提高代码的执行效率。本专题适合准备面试的开发者,也适合希望提高算法思维的编程爱好者。

22

2026.01.06

页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

404

2023.08.14

Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

9

2026.01.22

html编辑相关教程合集
html编辑相关教程合集

本专题整合了html编辑相关教程合集,阅读专题下面的文章了解更多详细内容。

56

2026.01.21

三角洲入口地址合集
三角洲入口地址合集

本专题整合了三角洲入口地址合集,阅读专题下面的文章了解更多详细内容。

30

2026.01.21

AO3中文版入口地址大全
AO3中文版入口地址大全

本专题整合了AO3中文版入口地址大全,阅读专题下面的的文章了解更多详细内容。

393

2026.01.21

妖精漫画入口地址合集
妖精漫画入口地址合集

本专题整合了妖精漫画入口地址合集,阅读专题下面的文章了解更多详细内容。

116

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
swift开发文档
swift开发文档

共33课时 | 20.3万人学习

Redis中文开发手册
Redis中文开发手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号