C++day7(auto关键字、lambda表达式、C++中的数据类型转换、C++标准模板库(STL)、list、文件操作)

news2024/11/21 2:37:42

一、Xmind整理:

关键词总结:

二、上课笔记整理:

1.auto关键字

#include <iostream>

using namespace std;

int fun(int a, int b, float *c, char d, double *e,int f)
{
    return 1+2;
}

int main()
{
    //定义一个函数指针,指向fun函数
    int (*p)(int , int , float *, char , double *,int ) = fun;
     
    //用auto来完成
     auto ptr = fun;
     
    return 0;
}
#include <iostream>

using namespace std;

template <typename T>
void fun(T a)
{
    auto b = a;
    cout << "b的数据类型:" << typeid (b).name() << endl;
}

int main()
{
    int a =10;
    fun(a);
    return 0;
}

 2.lambda表达式

#include <iostream>

using namespace std;

int main()
{
    int a = 100;
    double b = 13.45;
    char c = 'x';

    cout << "main-&a:" << &a << "  a = " << a << endl;

//    auto fun = [a,b,c]()mutable{
//    auto fun = [=]()mutable{
      auto fun = [&a,&b](){
      cout << "lambda--&a " << &a << " a = " << a << endl;
      a = 200;
      cout << "lambda--&a " << &a << " a = " << a << endl;

    };

    fun();
    cout << "main-&a:" << &a << "  a = " << a << endl;
    return 0;
}
#include <iostream>

using namespace std;

int main()
{
    int a = 100;
    double b = 13.45;
    char c = 'x';

    cout << "main-&a:" << &a << "  a = " << a << endl;
//    auto fun = [a,b,c]()mutable{
//    auto fun = [=]()mutable{
      auto fun = [&a,&b](string name = "hello world")->string{
      cout << "lambda--&a " << &a << " a = " << a << endl;
      a = 200;
      cout << "lambda--&a " << &a << " a = " << a << endl;
      return name;
    };

    cout << fun("hello kitty") << endl;
    cout << "main-&a:" << &a << "  a = " << a << endl;
    return 0;
}

 3.隐式类型转换(自动类型转换)

int num_int = 10;
double num_double = num_int;  // 隐式将int转换为double

4.显示类型转换(强制类型转换)

①静态转换

double num_double = 3.14;
int num_int = static_cast<int>(num_double);  // 显式将double转换为int

②动态转换

class Base {
    virtual void foo() {}
};
class Derived : public Base {};

Base* base_ptr = new Derived;
Derived* derived_ptr = dynamic_cast<Derived*>(base_ptr);  // 显式将基类指针转换为派生类指针

③常量转换

const int a =10; //
int *p;
p = &a; // 合不合法?   no
const int num_const = 5;
int* num_ptr = const_cast<int*>(&num_const);  // 去除const限定符

④重新解释转换

int num = 42;
float* float_ptr = reinterpret_cast<float*>(&num);  // 重新解释转换

5.C风格类型转换

①c样式转换

int num_int = 10;
double num_double = (double)num_int;  // C样式强制类型转换

②函数样式转换(函数式转换)

int num_int = 10;
double num_double = double(num_int);  // C++函数样式类型转换

6.vector的构造函数

#include <iostream>
#include <vector>

using namespace std;

//算法
void printVector(vector<int> &v)
{
    vector<int>::iterator iter; //定义了这样容器类型的迭代器
    for(iter = v.begin(); iter != v.end(); iter++)
    {
        cout << *iter << " ";
    }
    cout << endl;
}

int main()
{
    //容器
    vector<int> v; //无参构造函数
    v.push_back(10); //尾插
    v.push_back(20);
    v.push_back(30);
    v.push_back(40);

    //算法
    printVector(v);

    vector<int> v2(v.begin(),v.end());
    printVector(v2);

    vector<int> v3(6,100);
    printVector(v3);

    vector<int> v4 = v3;
    printVector(v4);

    vector<int> v5(v2);
    printVector(v5);

    return 0;
}

7.vector的容量大小

#include <iostream>
#include <vector>

using namespace std;

//算法
void printVector(vector<int> &v)
{
    vector<int>::iterator iter; //定义了这样容器类型的迭代器
    for(iter = v.begin(); iter != v.end(); iter++)
    {
        cout << *iter << " ";
    }
    cout << endl;
}

int main()
{
    //容器
    vector<int> v; //无参构造函数
    v.push_back(10); //尾插
    v.push_back(20);
    v.push_back(30);
    v.push_back(40);

    //算法
    printVector(v);

    vector<int> v2(v.begin(),v.end());
    printVector(v2);

    vector<int> v3(6,100);
    printVector(v3);

    vector<int> v4 = v3;
    printVector(v4);

    vector<int> v5(v2);
    printVector(v5);

    vector<int> v6;
    v6 = v5;
    printVector(v6);

    v6.assign(v5.begin(),v5.end());
    printVector(v6);

    v6.assign(8,99);
    printVector(v6);

    if(v6.empty())
    {
        cout << "容器为空" << endl;
    }
    else
    {
        cout << "容器的容量大小:" << v6.capacity() << endl;
        cout << "容器的大小:" << v6.size() << endl;

        v6.resize(15);
        printVector(v6);
    }

    return 0;
}

8.vector的元素提取

#include <iostream>
#include <vector>

using namespace std;

//算法
void printVector(vector<int> &v)
{
    vector<int>::iterator iter; //定义了这样容器类型的迭代器
    for(iter = v.begin(); iter != v.end(); iter++)
    {
        cout << *iter << " ";
    }
    cout << endl;
}

int main()
{
    //容器
    vector<int> v; //无参构造函数
    v.push_back(10); //尾插
    v.push_back(20);
    v.push_back(30);
    v.push_back(40);

    //算法
    printVector(v);

//    v.pop_back();//尾删
//    printVector(v);

//    v.insert(v.begin()+1,99);
//    printVector(v);

//    v.insert(v.begin(),4,77);
//    printVector(v);

//    v.erase(v.begin());
//    printVector(v);

//    v.erase(v.begin(),v.end());
//    printVector(v);

    v.clear();
    printVector(v);

    cout << "------------------" <<endl;

    vector<int> vv;
    for(int i=0;i<5;i++)
    {
        vv.push_back(i);
    }
    cout << vv.at(3) << endl;
    cout << vv[3] << endl;
    cout << vv.front() << endl;
    cout << vv.back() << endl;

    return 0;
}

9.文件操作

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    //1包含头文件  
    //2创建流对象
    ofstream ofs;

    //3打开文件
    ofs.open("E:/ready_class/stu.txt",ios::out);

    //4写入数据
    ofs << "姓名:张三" << endl;
    ofs << "年龄:34"  << endl;

    //5关闭文件
    ofs.close();

    //1包含头文件
    //2创建流对象
    ifstream ifs;

    //3打开文件
    ifs.open("E:/ready_class/stu.txt",ios::in);

    //4读取数据
    char buff[1024];
    while(ifs>>buff)
    {
        cout << buff << endl;
    }
    //5.关闭文件
    ifs.close();

    return 0;
}

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

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

相关文章

【USRP】集成化仪器系列1 :信号源,基于labview实现

USRP 信号源 1、设备IP地址&#xff1a;默认为192.168.10.2&#xff0c;请勿 修改&#xff0c;运行阶段无法修改。 2、天线输出端口是TX1&#xff0c;请勿修改。 3、通道&#xff1a;0 对应RF A、1 对应 RF B&#xff0c;运行 阶段无法修改。 4、中心频率&#xff1a;当需要…

自然语言处理-NLP

目录 自然语言处理-NLP 致命密码&#xff1a;一场关于语言的较量 自然语言处理的发展历程 兴起时期 符号主义时期 连接主义时期 深度学习时期 自然语言处理技术面临的挑战 语言学角度 同义词问题 情感倾向问题 歧义性问题 对话/篇章等长文本处理问题 探索自然语言…

腾讯云学生免费服务器如何申请?

腾讯云学生免费服务器如何申请?学生机申请流程&#xff0c;腾讯云学生服务器优惠活动&#xff1a;轻量应用服务器2核2G学生价30元3个月、58元6个月、112元一年&#xff0c;轻量应用服务器4核8G配置191.1元3个月、352.8元6个月、646.8元一年&#xff0c;CVM云服务器2核4G配置84…

老年人跌倒智能识别算法 opencv

老年人跌倒智能识别算法通过opencvpython深度学习算法框架模型&#xff0c;老年人跌倒智能识别算法能够及时发现老年人跌倒情况&#xff0c;提供快速的援助和救援措施&#xff0c;保障老年人的安全。Python是一种由Guido van Rossum开发的通用编程语言&#xff0c;它很快就变得…

读书笔记——《万物有灵》

前言 上一本书是《走出荒野》&#xff0c;太平洋步道女王提到了这本书《万物有灵》&#xff0c;她同样是看一点撕一点的阅读。我想&#xff0c;在她穿越山河森林&#xff0c;听见鸟鸣溪流的旅行过程中&#xff0c;是不是看这本描写动物有如何聪明的书——《万物有灵》&#xf…

完善区域企业监测预警机制,助推区域产业可持续发展

“五度易链”产业大数据解决方案由产业经济、智慧招商、企业服务、数据服务四大应用解决方案组成&#xff0c;囊括了产业经济监测、产业诊断分析、企业监测预警、企业综合评估、大数据精准招商、招商智能管理、企业管理、企业培育、企业市场服务、企业金融服务、产业数据开放服…

流程解决方案公司:用低代码技术平台实现流程化办公!

很多粉丝朋友会询问道可以用什么样的软件平台实现流程化办公。作为提供流程解决方案公司&#xff0c;流辰信息专业研发低代码技术平台&#xff0c;并且一直保持自主研发的奋斗心态&#xff0c;针对不同行业的特性&#xff0c;提供专属的框架定制服务&#xff0c;为客户朋友实现…

微信小程序左上角home图标的解决方法之一 层级混乱导致的home图标显示的问题 自定义左上角左侧图标的返回路径

这个项目的编辑页在tabbar上 导致跳到tabbar得使用wx.switchTab 保存后返回原来的页面就出现了左上角的home图标 本来想通过自定义home图标的跳转路径来解决这个问题 没想到居然找不到相关内容 有清楚的朋友麻烦给我留个言不胜感激 那我写一下我的骚操作 app.js globalData: {…

移动端和PC端对比【组件库+调试vconsole +单位postcss-pxtorem+构建vite/webpack+可视化echarts/antv】

目录 组件库 移动端 vue vant PC端 react antd vue element 调试&#xff1a;vconsole vs dev tools中的控制台&#xff08;Console&#xff09; ​​​​​​​vconsole&#xff1a;在真机上调试 postcss-pxtorem&#xff1a;移动端不同的像素密度 构建工具 web…

基于变色龙算法优化的BP神经网络(预测应用) - 附代码

基于变色龙算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于变色龙算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.变色龙优化BP神经网络2.1 BP神经网络参数设置2.2 变色龙算法应用 4.测试结果&#xff1a;5.Matlab代…

JVM运行时参数查看

常用命令查找文档站点&#xff1a;https://docs.oracle.com/javase/8/docs/technotes/tools/unix/index.html -XX:PrintFlagsInitial 输出所有参数的名称和默认值&#xff0c;默认不包括Diagnostic和Experimental的参数。可以配合 -XX:UnlockDiagnosticVMOptions和-XX:UnlockEx…

选择结构(个人学习笔记黑马学习)

if语句 单行if语句 用户输入分数&#xff0c;如果分数大于600&#xff0c;视为考上一本大学&#xff0c;在屏幕上输出 #include <iostream> using namespace std;int main() {int score 0;cout << "请用户输入分数" << endl;cin >> score;c…

three.js(五):canvas 的响应式布局

1-canvas 的响应式布局 canvas 画布的尺寸有两种&#xff1a; 像素尺寸&#xff0c;即canvas画布在高度和宽度上有多少个像素&#xff0c;默认是300*150css 尺寸&#xff0c;即css 里的width和height 在web前端&#xff0c;dom元素的响应式布局一般是通过css 实现的。而canvas…

CocosCreator3.8研究笔记(一)windows环境安装配置

一、安装Cocos 编辑器 &#xff08;1&#xff09;、下载Cocos Dashboard安装文件 Cocos 官方网站Cocos Dashboard下载地址 &#xff1a; https://www.cocos.com/creator-download9下载完成后会得到CocosDashboard-v2.0.1-win-082215.exe 安装文件&#xff0c;双击安装即可。 …

gitlab-runner安装和部署项目

目录 1.安装gitlab-runner 1.1 添加官方仓库 1.2.1 安装最新版本 1.2.2 安装指定版本&#xff08;可选&#xff09; 1.2.3 更新runner&#xff08;可选&#xff09; 1.3 随便点开gitlab上的一个项目 1.4 gitlab-runner的注册 2.配置gitlab-runner 3.runner一些命令 gi…

【Three.js + Vue 构建三维地球-Part One】

Three.js Vue 构建三维地球-Part One Vue 初始化部分Vue-cli 安装初始化 Vue 项目调整目录结构 Three.js 简介Three.js 安装与开始使用 实习的第一个任务是完成一个三维地球的首屏搭建&#xff0c;看了很多的案例&#xff0c;也尝试了用 Echarts 3D地球的模型进行构建&#xf…

盲盒小程序开发必修技能

盲盒小程序怎么开发&#xff1f;实用教程分享 如何制作一个盲盒小程序以进行线上销售 一、注册并登录【乔拓云】账号&#xff0c;进入操作后台 首先&#xff0c;您需要注册并登录到您的【乔拓云】账号&#xff0c;进入操作后台。在那里&#xff0c;您将找到并点击“商城”中的“…

C语言每日一练------Day(5)

本专栏为c语言练习专栏&#xff0c;适合刚刚学完c语言的初学者。本专栏每天会不定时更新&#xff0c;通过每天练习&#xff0c;进一步对c语言的重难点知识进行更深入的学习。 今日练习题关键字&#xff1a;错误的集合 密码检查 &#x1f493;博主csdn个人主页&#xff1a;小小u…

ChatGPT的局限性及商业化应用限制讨论

首先&#xff0c;ChatGPT仅使用公开可用的信息&#xff0c;这是其第一个局限。如果基础信息缺失、过时、模糊或过于泛化&#xff0c;AI生成的内容就将不会准确。 只有在使用企业内部专有信息和知识创建特定的GPT时&#xff0c;才会出现真正的商业化解决方案。但对企业而言&…

驱动 - 20230829

练习 基于platform实现 在根节点下&#xff0c;增加设备树 myplatform {compatible"hqyj,myplatform";interrupts-extended<&gpiof 9 0>, <&gpiof 7 0>, <&gpiof 8 0>;led1-gpio<&gpioe 10 0>;reg<0x12345678 59>;}…