实验1 C++

news/2024/10/9 8:35:08/文章来源:https://www.cnblogs.com/ccoo/p/18453413

任务1:

task1.cpp

  1 // 现代C++标准库、算法库体验
  2 // 本例用到以下内容:
  3 // 1. 字符串string, 动态数组容器类vector、迭代器
  4 // 2. 算法库:反转元素次序、旋转元素
  5 // 3. 函数模板、const引用作为形参
  6 
  7 #include <iostream>
  8 #include <string>
  9 #include <vector>
 10 #include <algorithm>
 11 
 12 using namespace std;
 13 
 14 // 声明
 15 // 模板函数声明
 16 template<typename T>
 17 void output(const T &c);
 18 
 19 // 普通函数声明
 20 void test1();
 21 void test2();
 22 void test3();
 23 
 24 int main() {
 25     cout << "测试1: \n";
 26     test1();
 27 
 28     cout << "\n测试2: \n";
 29     test2();
 30 
 31     cout << "\n测试3: \n";
 32     test3();
 33 }
 34 
 35 // 函数实现
 36 // 输出容器对象c中的元素
 37 template <typename T>
 38 void output(const T &c) {
 39     for(auto &i: c)
 40         cout << i << " ";
 41     cout << endl;
 42 }
 43 
 44 // 测试1
 45 // 组合使用算法库、迭代器、string反转字符串
 46 void test1() {
 47     string s0{"0123456789"};
 48     cout << "s0 = " << s0 << endl;
 49 
 50     string s1{s0};
 51     reverse(s1.begin(), s1.end());  // 反转指定迭代器区间的元素
 52     cout << "s1 = " << s1 << endl;
 53 
 54     string s2{s0};
 55     reverse_copy(s0.begin(), s0.end(), s2.begin()); // 将指定迭代区间的元素拷贝到指定迭代器开始的目标区间,并且在复制过程中反转次序
 56     cout << "s2 = " << s2 << endl;
 57 }
 58 
 59 // 测试2
 60 // 组合使用算法库、迭代器、vector反转动态数组对象vector内数据
 61 void test2() {
 62     vector<int> v0{2, 0, 4, 9};
 63     cout << "v0: ";
 64     output(v0);
 65 
 66     vector<int> v1{v0};
 67     reverse(v1.begin(), v1.end());
 68     cout << "v1: ";
 69     output(v1);
 70 
 71     vector<int> v2{v0};
 72     reverse_copy(v0.begin(), v0.end(), v2.begin());
 73     cout << "v2: ";
 74     output(v2);
 75 }
 76 
 77 // 测试3
 78 // 组合使用算法库、迭代器、vector实现元素旋转移位
 79 void test3() {
 80     vector<int> v0{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
 81     cout << "v0: ";
 82     output(v0);
 83 
 84     vector<int> v1{v0};
 85     rotate(v1.begin(), v1.begin()+1, v1.end());  // 旋转指定迭代器区间[v1.begin(), v1.end())之间的数据项,旋转后从迭代器v1.begin()+1位置的数据项开始
 86     cout << "v1: ";
 87     output(v1);
 88 
 89     vector<int> v2{v0};
 90     rotate(v2.begin(), v2.begin()+2, v2.end());
 91     cout << "v2: ";
 92     output(v2);
 93 
 94     vector<int> v3{v0};
 95     rotate(v3.begin(), v3.end()-1, v3.end());
 96     cout << "v3: ";
 97     output(v3);
 98 
 99     vector<int> v4{v0};
100     rotate(v4.begin(), v4.end()-2, v4.end());
101     cout << "v4: ";
102     output(v4);
103 }

 

运行结果截图;

 

任务2:

xxxx

任务3:

任务4:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/810373.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【解决方案】基于数据库驱动的自定义 TypeHandler 处理器

笔者在最近的项目开发中,频繁地遇到了 Java 类型与 JDBC 类型之间的转换问题: 1、数据库的 varchar 类型字段,需要存储 Java 实体中的 JSON 字符串; 2、数据库的 int 类型字段,需要存储 Java 实体中的 Enum 枚举。目录前言一、TypeHandler 简介1.1转换步骤1.2转换规则二、…

VMware ESXi 8.0U3 xFusion (超聚变) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025

VMware ESXi 8.0U3 xFusion (超聚变) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025VMware ESXi 8.0U3 xFusion (超聚变) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025 VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS xFusion (超聚变) 定制版 ESXi 8.0U3 标准版…

VMware ESXi 8.0U3 Huawei (华为) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025

VMware ESXi 8.0U3 Huawei (华为) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025VMware ESXi 8.0U3 Huawei (华为) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025 VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS Huawei (华为) 定制版 ESXi 8.0U3 标准版,Dell (戴…

VMware ESXi 8.0U3 HPE (慧与) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025

VMware ESXi 8.0U3 HPE (慧与) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025VMware ESXi 8.0U3 HPE (慧与) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025 VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS HPE (慧与) 定制版 ESXi 8.0U3 标准版,Dell (戴尔)、HPE…

ASP.NET Core OData 9的发布,放弃 .NET Framework

Microsoft 于 2024 年 8 月 30 日宣布推出 ASP.NET Core OData 9 包。 这个新包将ASP.NET Core与.NET 8 OData库保持一致,改变了OData格式中数据编码的内部细节,使其更符合OData 规范。在2024年8月早些时候,Microsoft 将 OData .NET 库更新到版本 8.0.0。其中最重要的更改是…

读数据工程之道:设计和构建健壮的数据系统03数据工程生命周期(上)

数据工程生命周期(上)1. 数据工程生命周期 1.1. 数据领域正在经历新数据技术和实践的爆炸式增长,抽象程度和易用性不断提高 1.2. 由于技术抽象程度的增加,数据工程师将越来越多地成为数据生命周期工程师,根据数据生命周期管理的原则来进行思考和操作 1.3. 数据工程生命周期…

2024年9月学习月报

一、学习目标学习 VLM 的基本原理和架构,理解视觉和语言信息的融合方式,掌握 VLM 的训练方式与评估方法。 学习 VLM 在遥感领域的应用(RemoteCLIP、ChangeCLIP),并尝试本地复现。二、学习内容 文献 An Introduction to Vision-Language Modeling VLM 按照训练方式可以分为…

31. 数据库基础

1. 数据库基础知识 1.1 关系型数据库与非关系型数据库1.2 关系型数据库的结构 库 Database 库,也称数据库,用于组织、存储和管理数据 类比于文件夹 表 Table 表,是数据库中基本的数据存储单位,由行(Row)和列(Column)组成 类比于excel文件 记录 Record 记录,是表中的一…

KeyShot基础操作2 - 材质篇

介绍了KeyShot的材质相关的内容:上材质、材质参数、贴图类型、映射类型、材质节点图等。​这部分基础操作,只是介绍KeyShot的操作方法,望知晓。 后续也会再更新材质、打光的案例,同时也会提供对应的工程文件。上材质基础操作 材质的通用参数 材质类型 纹理类型 多层材质 贴…

创建进程,设计信号量同步机制,实现多线程同步 - C语言版

环境:Windows11 编译器:Visual Studio 2019相关头文件: #include <windows.h> #include <stdio.h>相关函数:睡眠等待函数:Sleep(int millisecond); 睡眠等待一定时间,会造成OS重新调度其它的线程运行Sleep(10); //当前线程睡眠10毫秒后重新执行创建进程Cre…

古典+ezRSA

​ 古典密码在线工具:https://ctf.bugku.com/tools.html 一键解码工具库:随波逐流,在github上下载即可 注:古典密码只需做个了解,因为很多都是靠工具实现的,多刷题有个印象,遇到题能看出像什么密码就好。 Base家族 在密码学领域,"base" 通常指的是一种编码方…

【专题】2024年母婴行业发展趋势洞察报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37818 在当今消费市场中,母婴领域正经历着深刻的变革。随着需求日益多元化,母婴用户的消费习惯和选购考量因素发生了显著变化。 分龄分层产品逐渐成为主流,这背后是用户对个性化解决方案的追求以及对孩子成长各方面的细致关注。同时,母婴…