C++ ——从C到C++

1、C++的学习方法

(1)C++知识点概念内容比较多,需要反复复习

(2)偏理论,有的内容不理解,可以先背下来,后续可能会理解更深

(3)学好编程要多练习,简单的也要手写确认一遍,记笔记

(4)学习过程中不可能每个知识点都100%懂,有些内容可能经过多年的程序开发实践才领悟,所以即使有不懂的,也按进度计划前行

2、C和C++的区别 

C语言是面向过程编程(POP)

C++是面向对象编程(OOP)

那么面向过程编程和面向对象编程有什么区别呢?

        举个例子:比如做饭、洗衣服、扫地三件事

C语言面向过程编程,会这样做:

        自己做饭,自己洗衣服,然后自己扫地

        把事情分条目,按步骤一步一步来做,有条不紊的进行完成。优点:把握细节,符合计算机的思维,运行效率高;缺点:开发效率低

C++面向对象编程,会这样做:

        找个厨师对象来,让他来做饭,找个保姆对象来,让他来洗衣服和扫地

        优点:调用不同的对象来处理不同的事物,符合人的思维;缺点:运行效率低,但开发效率高

3、C++基础

C++的基础与C语言大致一样,例如:注释、变量、常量、整型、实型、字符型、布尔类型、算数/赋值/比较/逻辑运算符

3.1 基础格式 

#include <iostream>  //iostream:输入输出流文件 ,相当于stdint.h
using namespace std;  //命名空间
int main()  //入口函数
{
    cout << "Hello World!" << endl;  //cout:输出;endl:换行
    return 0;
}
Ctrl+a:全选
Ctrl+i:格式化文档

3.2 C++关键字

3.3 转义字符

转义字符意义ASCII码值(十进制)
\a响铃(BEL)007
\b退格(BS),将当前位置移到前一列008
\f换页(FF),将当前位置移到下页开头012
\n换行(LF),将当前位置移到下一行开头010
\r回车(CR),将当前位置移到本行开头013
\t水平制表(HT)009
\v垂直制表(VT)011
\'单引号039
\"双引号034
\\反斜杠092

3.4 输入输出语句

C++中除了可以使用C语言中printf、scanf进行输入输出外,又新增了一套新的,更容易使用的输入输出库,即iostream

        输出:cout << 字符串信息;

        输入:cin >> 变量;

3.5 C++新的赋值语法 

    //方法一
    int c(2); //相当于给c赋值2
    int d(c); //相当于把c的值赋值给d
    //方法二
    int e{d};  //相当于赋值
    //()和{}赋值的区别:{}更安全,{}为一致性赋值,数据窄化赋值是会警告
    double f=3.14;
    int g(f);
    cout<<g<<endl;  //3
//    int h{f};  //会报错(数据窄化赋值是会警告)

3.6 字符串类型

3.6.1 字符串输入输出

    string uname;
    cin>>uname;  //输入
    cout<<"姓名:"<<uname<<endl;  //输出
    //但是C++中提供了一种可以包含空白的字符串的输入方法:getline
    string addr;
    getline(cin,addr);
    cout<<"地址:"<<addr<<endl;
    //字符串类型string需要导入头文件string
    string str1="admin";
    cout<<str1<<endl;
    //获取字符串的长度
    cout<<"获取字符串的长度:"<<str1.length()<<endl;
    cout<<"获取字符串的长度:"<<str1.size()<<endl;
    //访问字符:索引和at()方法
    //区别:at()方法更安全
    cout<<str1[0]<<endl;  //索引
    cout<<str1.at(0)<<endl;  //at()方法
//    cout<<str1[19]<<"***"<<endl;  //访问超过最大索引值时,是随机值
//    cout<<str1.at(20)<<endl;  //程序终止执行,会爆出out off range错误

3.6.2 字符串的遍历

    //字符串的遍历
    for(int i=0;i<str1.size();i++){
        cout<<str1.at(i)<<"   ";
    }
    cout<<endl;
    //遍历的简便写法,脱离下标,推荐使用
    for(char c:str1){
        cout<<c<<"   ";
    }
    cout<<endl;

3.6.3 数字字符串与整数之间的转换

    //需要导入字符串流头文件sstream
    //(1)将整数转成字符串类型
    int count=123;
    stringstream ss;  //字符串流
    ss<<count;
    string res1=ss.str();
    cout<<res1<<endl;  //字符串类型的"123"
    //(2)将字符串转成整数
    string ww="1234";
    istringstream is(ww);
    int res2;
    is>>res2;
    cout<<res2<<endl; //数字类型1234

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

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

相关文章

<tauri><rust><GUI>基于rust和tauri的图片显示程序(本地图片的加载、显示、保存)

前言 本文是基于rust和tauri,由于tauri是前、后端结合的GUI框架,既可以直接生成包含前端代码的文件,也可以在已有的前端项目上集成tauri框架,将前端页面化为桌面GUI。 环境配置 系统:windows 10 平台:visual studio code 语言:rust、javascript 库:tauri2.0 概述 …

Java 中的 List 接口有哪些实现类?

以下是Java中List接口的主要实现类及其特点的详细总结&#xff1a; Java List 接口的主要实现类 1. ArrayList 实现方式&#xff1a;基于动态数组特点&#xff1a; 查询高效&#xff1a;支持随机访问&#xff08;通过索引&#xff09;&#xff0c;时间复杂度为O(1)增删较慢&a…

Arrays工具类详解

目录 1. Arrays.toString() 方法 2. Arrays.deepToString() 方法 3. Arrays.equals(int[ ] arr1, int[ ] arr2) 方法 4. Arrays.equals(Object[] arr1, Object[] arr2) 方法 5. Arrays.deepEquals(Object[] arr1, Object[] arr2) 方法 6. Arrays.sort(int[] arr) 方法 7…

设计高效的测试用例:从需求到验证

在现代软件开发过程中&#xff0c;测试用例的设计一直是质量保证&#xff08;QA&#xff09;环节的核心。有效的测试用例不仅能够帮助发现潜在缺陷&#xff0c;提升软件质量&#xff0c;还能降低后期修复成本&#xff0c;提高开发效率。尽管如此&#xff0c;如何从需求出发&…

基于YoloV11和驱动级鼠标模拟实现Ai自瞄

本文将围绕基于 YoloV11 和驱动级鼠标实现 FPS 游戏 AI 自瞄展开阐述。 需要着重强调的是&#xff0c;本文内容仅用于学术研究和技术学习目的。严禁任何个人或组织将文中所提及的技术、方法及思路应用于违法行为&#xff0c;包括但不限于在各类游戏中实施作弊等违规操作。若因违…

三角测量——用相机运动估计特征点的空间位置

引入 使用对极约束估计了相机运动后&#xff0c;接下来利用相机运动估计特征点的空间位置&#xff0c;使用的方法就是三角测量。 三角测量 和对极几何中的对极几何约束描述类似&#xff1a; z 2 x 2 R ( z 1 x 1 ) t z_2x_2R(z_1x_1)t z2​x2​R(z1​x1​)t 经过对极约束…

【AI论文】Visual Instruction Tuning

文献核心目标 作者的目标是通过多模态指令微调(Visual Instruction Tuning)来训练一个通用的视觉助手,使其能够理解用户的语言指令并与视觉内容结合完成任务。例如,用户可以上传图片并提出问题,模型根据图片内容作出回答。 1. 引言 什么是多模态交互?为什么重要? 人类…

SQL-leetcode—1407. 排名靠前的旅行者

1407. 排名靠前的旅行者 表&#xff1a;Users ---------------------- | Column Name | Type | ---------------------- | id | int | | name | varchar | ---------------------- id 是该表中具有唯一值的列。 name 是用户名字。 表&#xff1a;Rides -------------------…

如何本地部署DeepSeek

第一步&#xff1a;安装ollama https://ollama.com/download 打开官网&#xff0c;选择对应版本 第二步&#xff1a;选择合适的模型 https://ollama.com/ 模型名称中的 1.5B、7B、8B 等数字代表模型的参数量&#xff08;Parameters&#xff09;&#xff0c;其中 B 是英文 B…

Git生成公钥和私钥的方式

因为需要访问远程Git服务器&#xff0c;需要使用公钥&#xff1a; 1、先检测电脑上是否已经有.ssh目录 像我这就是没有的 2、开始生成一个新的SSH密钥&#xff08;RSA&#xff09; 打开Git Bash, 然后运行ssh-keygen -t rsa -b 4096 -C "注释" -t rsa是密匙类型…

常用的python库-安装与使用

常用的python库函数 yield关键字openslide库openslide库的安装-linuxopenslide的使用openslide对象的常用属性 cv2库numpy库ASAP库-multiresolutionimageinterface库ASAP库的安装ASAP库的使用 concurrent.futures.ThreadPoolExecutorxml.etree.ElementTree库skimage库PIL.Image…

SQL-leetcode—1393. 股票的资本损益

1393. 股票的资本损益 Stocks 表&#xff1a; ---------------------- | Column Name | Type | ---------------------- | stock_name | varchar | | operation | enum | | operation_day | int | | price | int | ---------------------- (stock_name, operation_day) 是这张…

【Audio】Android 10车载音频路由

音频路由 在 Android 10 中&#xff0c;car_audio_configuration.xml 取代了 car_volumes_groups.xml 和 IAudioControl.getBusForContext。新的配置文件定义了一个音频区列表。每个音频区都拥有一个或多个音量组及其关联设备&#xff0c;而每台设备都具有应在该音频区内进行路…

Spring中都应用了哪些设计模式?

好的&#xff01;以下是您提到的八种设计模式在 Spring 中的简单示例&#xff1a; 1. 简单工厂模式 简单工厂模式通过传入参数来决定实例化哪个类。Spring 中的 BeanFactory 就是简单工厂模式的应用。 示例代码&#xff1a; // 1. 创建接口和具体实现类 public interface A…

【Oracle专栏】本地 expdp 导出远程库

Oracle相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 1.背景 近期需要在远程备份机器上远程导出数据库,之前用expdp数据泵只导出过本服务器的,本文跨服务器使用expdp 。 2. 测试 2.1 本机装完整oracle时,执行expdp导出远端数据库 实验说明:以下12为本机,14…

Flink KafkaConsumer offset是如何提交的

一、fllink 内部配置 client.id.prefix&#xff0c;指定用于 Kafka Consumer 的客户端 ID 前缀partition.discovery.interval.ms&#xff0c;定义 Kafka Source 检查新分区的时间间隔。 请参阅下面的动态分区检查一节register.consumer.metrics 指定是否在 Flink 中注册 Kafka…

【leetcode】双指针:移动零 and 复写零

文章目录 1.移动零2.复写零 1.移动零 class Solution { public:void moveZeroes(vector<int>& nums) {for (int cur 0, dest -1; cur < nums.size(); cur)if (nums[cur] ! 0)swap(nums[dest], nums[cur]);} };class Solution { public:void moveZeroes(vector&l…

【Elasticsearch】Bucket Count K-S Test 聚合

Bucket Count K-S Test是 Elasticsearch 中的一种兄弟管道聚合&#xff08;sibling pipeline aggregation&#xff09;&#xff0c;用于执行双样本柯尔莫哥洛夫-斯米尔诺夫检验&#xff08;Kolmogorov-Smirnov Test&#xff0c;简称 K-S 检验&#xff09;。这种聚合主要用于比较…

网络安全工程师逆元计算 网络安全逆向

中职逆向题目整理合集 逆向分析&#xff1a;PE01.exe算法破解&#xff1a;flag0072算法破解&#xff1a;flag0073算法破解&#xff1a;CrackMe.exe远程代码执行渗透测试天津逆向re1 re22023江苏省re12023年江苏省赛re2_easygo.exe2022天津市PWN 逆向分析&#xff1a;PE01.exe …

【网络安全.渗透测试】Cobalt strike(CS)工具使用说明

目录 前言 一、工具显著优势 二、安装 Java 运行环境 三、实验环境搭建要点 四、核心操作流程详解 (一)环境准备与连接步骤 (二)主机上线与深度渗透流程 五、其他实用功能应用指南 (一)office 宏 payload 应用 (二)Https Payload 应用 (三)信息收集策略 …