C++ 学习笔记

文章目录

  • 【 字符串相关 】
    • C++ 输入输出流
    • strcpy_s() 字符串复制
    • 输出乱码
  • 【 STL 】
    • 各个 STL 支持的常见方法

  • ? : 运算符
  • switch case 运算符
switch(expression)
{case constant-expression  :statement(s);break; // 可选的case constant-expression  :statement(s);break; // 可选的default : // 可选的statement(s);
}
  • C++可以不必在程序运行前定义好所有变量
  • 5/2=2,例如:cout << 5/2; 输出为 2。
  • 在 C 语言中,数组的大小必须在使用前已知,并且这个大小在整个程序的运行过程中不能改变,除非使用动态数组。因此,数组的大小通常由常量来定义,而不是变量。这是因为:
    • 编译时分配内存:数组在内存中的存储是连续的,编译器需要在编译时知道数组的大小,以便为数组分配足够的连续内存空间。如果数组的大小在编译时未知,编译器就无法进行内存分配。

【 字符串相关 】

C++ 输入输出流

  • 输入字符串
char s[100]; cin.getline(s, 100);
  • 输入 string类
string s; getline(cin, s);

strcpy_s() 字符串复制

#include <iostream>
#include <cstring>
using namespace std;int main()
{char  s1[] = "123456"; //普通字符串int n = sizeof(s1) / sizeof(char);char* s2 = new char[n]; //动态字符串strcpy_s(s2, n, s1);    //字符串复制cout << n << endl;cout << s2<<endl;return 0;
}

在这里插入图片描述

输出乱码

  • cout << value; cout会自动根据value的类型进行输出, 当 value 类型为 char* 时,cout会从 value 这个 char * 地址开始遍历地址对应的元素直至遇到 ‘\0’ 字符
  • 实例
    s1 是字符数组,直接将地址 s1 输出,会因为没有遇到 ‘\0’ 字符输出乱码。
    s2 是申请了类型为char大小为n的首地址,对其赋值后,也会由于没有遇到 ‘\0’ 字符输出乱码。
    而在 s2 的末位元素赋值为 ‘\0’ 后,将不再出现乱码。
// 将 s1 的前 n 个元素赋值给 s2。
#include <iostream>
using namespace std;int main()
{int n;cin >> n;char s1[] = {'1','2','3','4','5'};char* s2 = new char[n];for (int i = 0; i < n; ++i)s2[i] =s1[i];cout << s2 <<endl;s2[n] = '\0';cout << s2 <<endl;return 0;
}

在这里插入图片描述

【 STL 】

各个 STL 支持的常见方法

STL名称支持的常见方法
vector大小:size()
尾添加:push_back()
头尾指针: begin()、end()
deque大小:size()
头尾添加:push_front()、push_back()
头尾删除:pop_front()、pop_back()
头尾指针: begin()、end()
set大小:size()
插入:insert()、emplace()
删除:erase()
查找: find()
最小的大于 val 的元素:upper_bound()
头尾指针: begin()、end()
map大小:size()
插入:insert()、emplace()
删除:erase()
查找: find()
头尾指针: begin()、end()
最小的大于 val 的元素:upper_bound()
头尾指针: begin()、end()
stack大小:size()
压栈:push()
栈顶元素删除:pop()
栈顶指针: top()
queue大小:size()
尾添加:push()
头删除:pop()
头尾指针: front()、back()

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

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

相关文章

LT8712SX DP转两路HDMI2.0 MST 4K60hz,芯片方案

1. 特性 ⚫USB Type-C▪兼容USB上的VESA DisplayPort Alt模式 c型标准1.0b - DP Alt模式支持引脚分配C, D和E -符合USB供电规范3.1 -符合USB Type-C电缆和连接器 规范1.3 ▪内置三CC逻辑和PD控制器充电器和 正常的沟通 ▪支持UFP和DFP数据角色 ▪支持电源&#xff0c;接…

非关系型数据库--------------------Redis 群集模式

目录 一、集群原理 二、集群的作用 &#xff08;1&#xff09;数据分区 &#xff08;2&#xff09;高可用 Redis集群的作用和优势 三、Redis集群的数据分片 四、Redis集群的工作原理 五、搭建redis群集模式 5.1启用脚本配置集群 5.2修改集群配置 5.3启动redis节点 5…

Java 那些诗一般的 数据类型 (下篇)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人能接…

通过 Spark SQL 和 DataFrame 操作表和多种内部数据源总结

文章目录 前言在Spark应用中使用Spark SQLSQL 表和视图内部表和外部表创建库和表创建视图查看元数据表缓存读取表数据 表和 DataFrame 的数据来源DataFrameReaderDataFrameWriterParquetJSONCSVAvroORCImagesBinary Files 总结 前言 本文将探讨 Spark 中 Spark SQL 接口是如何…

StockTrading AI小模型股票自动交易系统 转载

Stock-Trading StockTrading AI小模型股票自动交易系统 项目文档 Stock-Trading 语雀 项目展示 功能介绍 对接证券平台&#xff0c;实现股票自动化交易使用QuartZ定时任务调度&#xff0c;每日自动更新数据使用DL4J框架实现LSTM模型指导股票买入&#xff0c;采用T1短线交易策…

C/C++如何快速学习?少走3年弯路

于我而言&#xff0c;最开始学习就是 C&#xff0c;除了计算机专业&#xff0c;其他专业可能学习的第一门编程语言为 C 语言&#xff0c;还是谭浩强爷爷那本&#xff0c;当时想着有点 C 基础&#xff0c;无外乎就是 C 语言的升级版&#xff0c;于是开启了 C 的路程。 语言这个…

鸿蒙、如何使用@ohos.contact 接口,实现对联系人的增删查改功能

介绍 本示例使用ohos.contact 接口&#xff0c;实现了对联系人的增删查改功能。 效果预览 使用说明 1.点击 按钮&#xff0c;跳转添加联系人界面&#xff0c;输入联系人信息&#xff0c;点击 √&#xff0c;确认添加联系人&#xff0c;并返回首页&#xff1b; 2.点击联系人…

学习记录14-运算放大器2

目录 前言 一、理想放大器 二、虚断 二、虚短 虚短的两个使用条件 1.虚短概念 2.如果我们将运放的同相端和反相端颠倒会怎样呢&#xff1f; 总结 前言 主要讲述运算放大器的虚短虚断 一、理想放大器 如果没有基础或只是想简单了解&#xff0c;可以看我前一篇文章&am…

Jackson 2.x 系列【15】序列化器 JsonSerializer

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Jackson 版本 2.17.0 源码地址&#xff1a;https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 概述2. 方法2.1 构造2.2 序列化2.3 其他 3. 实现类3.1 StdSerializer3.1.1 源…

vue3学习笔记(pinia)

defineModel&#xff1a;快速实现组件的双向绑定 pinia&#xff1a;在仓库中提供数据和使用数据 创建store文件夹&#xff0c;在里面创建counter.js&#xff0c;以提供数据&#xff0c;注意需要return 和 export&#xff0c;export的是一个函数。 import { defineStore } from…

智慧驿站式的“智慧公厕”,给城市新基建带来新变化

随着智慧城市建设的推进&#xff0c;智慧驿站作为一种多功能城市部件&#xff0c;正逐渐在城市中崭露头角。这些智慧驿站集合了智慧公厕的管理功能&#xff0c;为城市的新基建带来了全新的变革。本文以智慧驿站智慧公厕源头实力厂家广州中期科技有限公司&#xff0c;大量精品案…

蓝桥杯第十三届省赛C++B组(未完)

目录 刷题统计 修剪灌木 X进制减法 【前缀和双指针】统计子矩阵 【DP】积木画 【图DFS】扫雷 李白打酒加强版 DFS (通过64%&#xff0c;ACwing 3/11&#xff09;; DFS(AC) DP&#xff08;AC&#xff09; 砍竹子(X) 刷题统计 题目描述 小明决定从下周一开始努力刷题准…

基于JAVA的汽车售票网站论文

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对汽车售票信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差…

ChatGPT与生成式AI:教育领域内新的浪潮与挑战

随着ChatGPT和其他生成式AI技术&#xff0c;如GPT-3.5、GPT-4的出现&#xff0c;我们正见证教育领域一场前所未有的变革浪潮。这些技术不仅推动了教育方式的进步&#xff0c;也为学习者带来了全新的机遇和挑战。 NO.1教育变革的新浪潮 生成式AI技术&#xff0c;特别是ChatGPT&…

使用SquareLine Studio创建LVGL项目到IMX6uLL平台

文章目录 前言一、SquareLine Studio是什么&#xff1f;二、下载安装三、工程配置四、交叉编译 前言 遇到的问题&#xff1a;#error LV_COLOR_DEPTH should be 16bit to match SquareLine Studios settings&#xff0c;解决方法见# 四、交叉编译 一、SquareLine Studio是什么…

04 Python进阶:MySQL-PyMySQL

什么是 PyMySQL&#xff1f; PyMySQL 是一个用于 Python 的纯 Python MySQL 客户端库&#xff0c;提供了与 MySQL 数据库进行交互的功能。PyMySQL 允许 Python 开发人员连接到 MySQL 数据库服务器&#xff0c;并执行诸如查询、插入、更新和删除等数据库操作。 以下是 PyMySQL …

超图SuperMap-Cesium,地形图层,可以渲染一个或多个地形(地形可缓存DEM,TIN方式),webGL代码开发(2024-04-08)

1、缓存文件类型TIN格式&#xff0c;TIN的地形sct只能加一个 const viewer new Cesium.Viewer(cesiumContainer); viewer.terrainProvider new Cesium.CesiumTerrainProvider({isSct: true, // 是否为iServer发布的TIN地形服务,stk地形设置为falserequestWaterMask : true,…

【前沿模型解析】潜在扩散模型 2-2 | 手撕感知图像压缩基础块上下sample块

文章目录 1 DownSample下采样部分1.1 两种实现方式1.2 代码实现 2 UpSample上采样部分2.1 代码实现 1 DownSample下采样部分 1.1 两种实现方式 下采样&#xff0c;即改变特征图的尺寸 下采样的话源码实现了两种方式 方式一&#xff1a;是通过卷积实现下采样&#xff0c;我们…

谈谈什么是 Redis

&#x1f525;博客主页&#xff1a;fly in the sky - CSDN博客 &#x1f680;欢迎各位&#xff1a;点赞&#x1f44d;收藏⭐️留言✍️&#x1f680; &#x1f386;慢品人间烟火色,闲观万事岁月长&#x1f386; &#x1f4d6;希望我写的博客对你有所帮助,如有不足,请指正&#…

Linux(05) Debian 系统修改主机名

查看主机名 方法1&#xff1a;hostname hostname 方法2&#xff1a;cat etc/hostname cat /etc/hostname 如果在创建Linux系统的时候忘记修改主机名&#xff0c;可以采用以下的方式来修改主机名称。 修改主机名 注意&#xff0c;在linux中下划线“_”可能是无效的字符&…