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.hqwc.cn/news/661671.html

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

相关文章

C#应用程序实现多屏显示

前言 随着业务发展&#xff0c;应用程序在一些特定场景下&#xff0c;只在一个显示器上展示信息已经不能满足用户需求。我们如何把主屏运行程序中多个窗体移动到各个扩展屏幕位置显示呢&#xff1f;C# 是通过什么方式来实现的&#xff0c;下面介绍 C# 使用 Screen 类的方式来实…

经典机器学习法---感知模型机

优质博文&#xff1a;IT-BLOG-CN 1、模型形式 感知机模型主要用于解决二分类问题&#xff0c;即响应变量Y是个二分类变量&#xff08;如性别&#xff09;。其基本思想是拟找出一个超平面S&#xff0c;将样本空间中的训练集分为两个部分&#xff0c;使得位于超平面S合一侧的点具…

Python 与 TensorFlow2 生成式 AI(三)

原文&#xff1a;zh.annas-archive.org/md5/d06d282ea0d9c23c57f0ce31225acf76 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第七章&#xff1a;使用 GAN 进行风格转移 神经网络在涉及分析和语言技能的各种任务中正在取得进步。创造力是人类一直占有优势的领域&…

曹操出行冲刺港交所上市:2023年收入突破100亿元,规模效应显现

近日&#xff0c;曹操出行有限公司&#xff08;下称“曹操出行”&#xff09;向港交所递交上市申请&#xff0c;华泰国际、农银国际、广发证券&#xff08;香港&#xff09;担任其联席保荐人。 据招股书介绍&#xff0c;曹操出行由吉利控股集团于2015年孵化成立&#xff0c;使…

第三方软件测评费的取费标准

随着信息技术的快速发展&#xff0c;软件产品在各行各业的应用越来越广泛&#xff0c;而软件的质量直接关系到用户的使用体验和企业的业务运行。为了确保软件的质量和性能&#xff0c;第三方软件测评服务应运而生。那么&#xff0c;第三方软件测评费的取费标准是怎样的呢&#…

内网端口转发与代理

思路&#xff1a;渗透的前提是双方能够建立通信。目前无法和win7建立通信&#xff0c;但是拿到了windows2003的权限&#xff0c;所以可以在Windows2003主机上面建立节点&#xff0c;作为跳板机去访问到内网。 目前状态&#xff1a;控制win2003&#xff08;IP&#xff1a;192.1…

7 -- 异常

目录 异常机制 Error与Exception 什么是异常 异常体系结构 Error Exception 捕获和抛出异常 自定义异常及经验小结 异常机制 Java的异常机制主要依赖于try、catch和finally块来处理程序执行过程中出现的异常事件。 解决方案&#xff1a; 使用try块捕获可能发生异常的…

[华为OD] C卷 5G网络 现需要在某城市进行5G网络建设,已经选取N个地点设置5G基站 200

题目 现需要在某城市进行5G网络建设&#xff0c;已经选取N个地点设置5G基站&#xff0c;编号固定为1到N,接 下来需要各个基站之间使用光纤进行连接以确保基站能互联互通&#xff0c;不同基站之间架设光纤的成 本各不相同&#xff0c;且有些节点之间已经存在光纤相连&#…

第11章 数据库技术(第一部分)

一、数据库技术术语 &#xff08;一&#xff09;术语 1、数据 数据描述事物的符号描述一个对象所用的标识&#xff0c;可以文字、图形、图像、语言等等 2、信息 现实世界对事物状态变化的反馈。可感知、可存储、可加工、可再生。数据是信息的表现形式和载体&#xff0c;信…

微搭低代码入门01微搭底层能力介绍

目录 1 什么是应用2 有服务器和无服务器3 关系型数据库和文档型数据库4 云存储5 云函数6 静态网站托管总结 日常经常解答初学者的问题&#xff0c;问的最多的就是学习微搭&#xff0c;需要多久&#xff0c;要不要学习代码。有的初学者心比较急躁&#xff0c;总是希望一蹴而就&a…

ORACLE 性能优化 高水位调节

当我需要去做优化时,有一个固定的优化思路:SQL优化->索引优化->分区优化->优化器hints优化 SQL 语句优化 1. 选用适合的 ORACLE 优化器 ORACLE 的优化器共有 3 种 : a. RULE ( 基于规则 ) b. COST ( 基于成本 ) c. CHOOSE ( 选 择性) 设置缺省的优化器, 可以通…

ps科研常用操作,制作模式图 扣取想要的内容元素photoshop

复制想要copy的图片&#xff0c; 打开ps---file-----new &#xff0c;ctrolv粘贴图片进入ps 选择魔棒工具&#xff0c;点击想要去除的白色区域 然后&#xff0c;cotrol shift i&#xff0c;反选&#xff0c; ctrol shiftj复制&#xff0c;复制成功之后&#xff0c;一定要改…