C++Day 7 作业

1、lambda

#include <iostream>using namespace std;int main()
{int a =100;int b =90;int temp;auto  fun = [&]()mutable->int {temp =a;a=b;b=temp;};fun();cout<<a<<endl;return 0;
}

2、vector

#include <iostream>
#include <vector>
using namespace std;int main()
{//调用无参构造,实例化一个vector类对象vector<int> v1;//对vector容器进行插入操作//判空
//    cout<<v1.empty()<<endl;//插入v1.assign(3,89);
//    cout<<"v1.size:"<<v1.size()<<endl;
//    cout<<"v1.capacity:"<<v1.capacity()<<endl;v1.assign(1,23);//将一个元素插入已满的vector中实现的时覆盖操作cout<<"v1.size:"<<v1.size()<<endl;cout<<"v1.capacity:"<<v1.capacity()<<endl;v1.assign(3,89);//插入3个89//通过front函数返回首元素的引用并修改v1.front() = 90;
//  cout<<v1.front()<<endl;//通过back函数返回首元素的引用并修改v1.back() = 24;
//  cout<<v1.back()<<endl;//通过at函数访问vector中相应下标的元素,也可以修改for(int i = 0 ;i<3;i++){cout<<v1.at(i)<<endl;}//使用beign函数,返回vector中第一个位置的迭代器
//    cout<<*v1.begin()<<endl;//使用insert函数,插入元素
//    cout<<*v1.insert(v1.begin(),14)<<endl;cout<<"v1.size:"<<v1.size()<<endl;cout<<"v1.capacity:"<<v1.capacity()<<endl;
//    for(int i = 0 ;i<4;i++)
//    {
//          cout<<v1.at(i)<<endl;
//    }//定义一个迭代器vector<int>::iterator start = v1.begin()+1;v1.insert(v1.begin(),start,v1.end());//在指定位置前插入start——end区间中的元素v1.insert(v1.begin()+2,15);//在第二个元素后插入元素vector<int>::iterator n = v1.begin();for(;n!=v1.end();n++){cout<<*n<<endl;}//使用max_size()返回所能容纳元素的最大数量cout<<"max_size:"<<v1.max_size()<<endl;//使用pop_back函数删除当前vector最末的一个元素v1.pop_back();for(n=v1.begin();n!=v1.end();n++){cout<<*n<<endl;}//使用push_back函数在末尾插入指定值的元素v1.push_back(24);cout<<endl;for(n=v1.begin();n!=v1.end();n++){cout<<*n<<endl;}//使用erase函数删除指定位置的元素,也可删除区间内的所有元素v1.erase(v1.begin()+2);//删除第三个元素cout<<endl;for(n=v1.begin();n!=v1.end();n++){cout<<*n<<endl;}return 0;
}

3、智能指针

#include <iostream>
#include <memory>
using namespace std;class Demo
{
public:int a;Demo():a(9){cout<<"无参"<<endl;}~Demo(){cout<<"析构"<<endl;}};
class Test
{
public:int b;Test():b(10){cout<<"无参"<<endl;}~Test(){cout<<"析构"<<endl;}
};
int main()
{
//    //①使用堆空间直接初始化unique_ptr
//    unique_ptr<Demo> p1(new Demo);
//    cout<<"p1 = "<<p1.get()<<endl;
//    cout<<endl;//    //②使用原始指针初始化uniquq_ptr
//    Demo *p = new Demo;
//    cout<<"p = "<<p<<endl;
//    unique_ptr<Demo> p2(p);
//    cout<<"p2 = "<<p2.get()<<endl;
//    cout<<endl;//    swap(p1,p2);//swap交换指针
//    cout<<"p1 = "<<p1.get()<<endl;
//    cout<<"p2 = "<<p2.get()<<endl;
//    cout<<endl;//    //③使用函数初始化unique_ptr
//    unique_ptr<Demo> p3 =make_unique<Demo>();
//    p3 = nullptr;
//    cout<<endl;//    //④想让p4独占p2的空间
//    unique_ptr<Demo> p4;
//    p4 = move(p2);
//    cout<<"p2 = "<<p2.get()<<endl;
//    cout<<"p4 = "<<p4.get()<<endl;
//    cout<<endl;//    //释放p4对空间使用权
//    Demo *test = p4.release();
//    cout<<"p4 = "<<p4.get()<<endl;
//    cout<<"test = "<<test<<endl;
//    cout<<endl;//    unique_ptr<Demo> p5(move(p4));//move返回值可作为初始化//①使用堆空间直接初始化unique_ptrshared_ptr<Demo> p1(new Demo);cout<<endl;//②使用原始指针初始化uniquq_ptrDemo *p = new Demo;shared_ptr<Demo> p2(p);cout<<endl;//③使用函数初始化unique_ptrshared_ptr<Demo> p3 =make_shared<Demo>();cout<<endl;//④调用拷贝构造函数shared_ptr<Demo> p4(p3);cout<<endl;//⑤调用拷贝赋值函数shared_ptr<Demo> p5;p5 = p4;cout<<endl;/***********引入计数功能***********/cout<<"引入计数功能:"<<endl;cout<<p2.use_count()<<endl;p2 = nullptr;//释放p2堆空间的所有权,空间的引用计数-1cout<<p2.use_count()<<endl;return 0;
}

4、思维导图

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

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

相关文章

控制台主机不能运行,切换终端实现RPG运行

鄙人转载&#xff0c;主要是移植过程中使用小熊猫C2.25.1 过程中&#xff0c;字符集不同&#xff0c;导致某些空格 从bilibili专栏粘贴导致出现符号不匹配&#xff0c;但是编辑器不能替换 用原来的devc 5.11 发现问题&#xff0c;读出额外的英文&#xff1f; 使用文件替换&…

延时任务通知服务的设计及实现(二)-- redisson的延迟队列RDelayedQueue

一、接着上文 RDelayedQueue作为redisson封装的一个分布式延迟队列&#xff0c;直接拿来使用还是比较简单的。 本文主要包括以下几部分&#xff1a; 保存至延迟队列&#xff08;生产者&#xff09;读取延迟队列&#xff08;消费者&#xff09;从延迟队列移除任务 二、rediss…

数据库语法复习

总结&#xff1a; DDL&#xff08;数据定义语言&#xff09; CREATE DATABASE&#xff1a;创建一个新的数据库。DROP DATABASE&#xff1a;删除一个数据库。CREATE TABLE&#xff1a;创建一个新的表。DROP TABLE&#xff1a;删除一个表。ALTER TABLE&#xff1a;修改表的结构&a…

什么品牌的洗地机好用性价比高?高性价比洗地机品牌推荐!

随着科技的发展&#xff0c;智能家居产品逐渐走入我们的生活&#xff0c;洗地机作为其中的代表之一&#xff0c;备受消费者关注。然而&#xff0c;面对市场上众多品牌的扫地机器人&#xff0c;消费者往往难以抉择。那么&#xff0c;洗地机哪个牌子好&#xff1f;为了给大家一个…

使用 Microsoft Azure 架构完善的框架构建出色的解决方案

原文&#xff1a;Build great solutions with the Microsoft Azure Well-Architected Framework - Training | Microsoft Learn 了解如何使用 Microsoft Azure 架构完善框架的支柱在 Azure 中设计和构建安全、可扩展、高性能的解决方案。 介绍 想象一下&#xff0c;您正在云…

Unity 实现新手引导遮罩

Unity 复写OnPopulateMesh 实现新手引导遮罩、包含点击事件触发区域判断 https://download.csdn.net/download/shenliang34/89247117

2024五一数学建模竞赛A题思路讲解

五一数学建模思路 具体思路如下&#xff1a; 提高钢板下料切割过程中的工作效率&#xff0c;是模具加工企业降低成本和增加经济效益的重要途径&#xff0c;其中钢板切割的路径规划是钢板切割过程的一个关键环节。 钢板切割就是使用特殊的切割技术&#xff0c;基于给定的下料切…

MouseBoost PRO for Mac激活版:强大的 鼠标增强软件

在追求高效工作的今天&#xff0c;MouseBoost PRO for Mac成为了许多Mac用户的得力助手。这款功能强大的鼠标增强软件&#xff0c;以其独特的智能化功能和丰富的实用工具&#xff0c;让您的电脑操作更加便捷、高效。 MouseBoost PRO for Macv3.4.0中文激活版下载 MouseBoost PR…

PotatoPie 4.0 实验教程(33) —— FPGA实现摄像头视频图像叠加

链接直达 https://item.taobao.com/item.htm?ftt&id776516984361 什么是视频水印&#xff1f; 视频水印就是图像叠加&#xff0c;跟画中画&#xff0c;或者是OSD是一样的原理&#xff0c;都是在视频的行场数据流上进行替换操作&#xff0c;比如叠加可以直接用水印图的数…

arthas无法捕获到try catch了的异常怎么办呢?

本案例使用的arthas是最新版本3.7.2 要跟踪的代码: 1、arthas watch试下能不能捕获到 页面上请求 http://localhost:8080/exception发现捕获不了。 2、可以使用btrace捕获,能够捕获到 我本案例使用Eclipse编写btrace脚本 ,首先引入btrace的jar包 <dependency> <g…

Java、Go 和 Rust 的比较

当涉及到Java、Go和Rust的比较时&#xff0c;主要考虑的是它们在性能、安全性、开发效率等方面的差异。下面将为你提供一个简单的例子&#xff0c;比较它们在并发编程方面的不同。 Java Java是一种面向对象的编程语言&#xff0c;广泛用于企业级应用和大型系统开发。它具有强…

scala基础学习--变量,标识符,类型和类型转换

一、基本学习 1、输出语句和分号 1.换行输出 println&#xff08;打印数据&#xff09;2.不换行输出 print(打印数据)3.分号使用 在多个打印在一行中间的分号必须写&#xff0c;末尾可以不写 2、Scala中常量 常量是指&#xff1a;在程序发生变化过程中&#xff0c;不会发…

跨语言摘要CLS近期论文研究总结(一)

1. A Cross-Lingual Summarization method based on cross-lingual Fact-relationship Graph Generation 基于跨语言事实关系图生成的跨语言摘要方法学习 首先&#xff0c;从源语言文档和目标语言参考摘要中提取事实三重信息&#xff0c;并构建其事实关系图。 然后&#xff0c…

汽车制造业安全事故频发,如何才能安全进行设计图纸文件外发?

汽车制造业产业链长&#xff0c;关联度高&#xff0c;汽车制造上游行业主要为钢铁、化工等行业&#xff0c;下游主要为个人消 费、基建、客运和军事等。在汽车制造的整个生命周期中&#xff0c;企业与上下游供应商、合作商之间有频繁、密切的数据交换&#xff0c;企业需要将设计…

开发总结-Controller层

Controller层一定要try catch一下&#xff0c;不然里面报的错可能导致程序报错。 catch中就表示有错误就 Return ResultUtils.err(e.getMessage()) 必填项校验 在实体属性中添加注解 NotNull : 用在基本类 型上 不能为null 但可以为空字符串 NotEmpty : 用在集合类上 不能为…

PHP SMTP 电子邮件错误‘354结束数据‘data: 354 Enter mail, end with .

荆轲刺秦王 公司的邮箱发送验证码功能 之前一直正常工作 但是最近停止了 查看代码发现邮件类使用的是codeigniter框架的Email class 原有的代码是&#xff1a; /application/config.php mail >[protocol > smtp,smtp_host > mail.baidu.com,smtp_user > roo…

oracle pl/sql 如何让sql windows 显示行号

oracle pl/sql 如何让sql windows 显示行号 下载最新版的pl/sql第一步&#xff0c;在preferences中对sql Windows进行设置&#xff0c;如下所示第二步&#xff0c;在preferences中对User interface进行设置&#xff0c;如下所示结果如下当然&#xff0c;还可以通过右键选择是否…

ccpc热身赛题目1:中文系Roliy的困惑

代码 import java.util.ArrayList; import java.util.Scanner;public class Main {public static void main(String[] args) {ArrayList<String> list new ArrayList<>();char [] charArr new char[32];for (int i 0; i < charArr.length; i) {charArr[i] 0…

OPPO Reno10Pro/Reno11/K10手机强解BL刷root权限KSU内核抓包刷机救砖

OPPO Reno10Pro/Reno11/K10手机虽然发布时间并不久&#xff0c;但由于天玑处理器的体质&#xff0c;已经支持强制解锁BL了&#xff0c;该漏洞来自第三方工具适配&#xff0c;支持OPPO天机8100/8200刷机救砖解锁BL不需要等待官方深度测试直接实现。解锁BL后的OPPO Reno10Pro/Ren…

PC-3000 Mobile Pro: 智能手机及平板设备数据提取及取证工具

天津鸿萌科贸发展有限公司从事数据安全业务20余年&#xff0c;在数据恢复、数据取证、数据备份等领域有丰富的案例经验、前沿专业技术及良好的行业口碑。同时&#xff0c;公司面向取证机构及数据恢复公司&#xff0c;提供数据恢复实验室建设方案&#xff0c;包含数据恢复硬件设…