C++基础知识
Mwwwwwwww
这个作者很懒,什么都没留下…
展开
-
C++ static成员函数
1、普通成员函数可以访问所有成员(包括成员变量和成员函数),而静态成员函数只能访问静态成员。静态成员函数与普通成员函数的根本区别在于:普通成员函数有 this 指针,可以访问类中的任意成员;而静态成员函数没有 this 指针,只能访问静态成员(包括静态成员变量和静态成员函数)。2、和静态成员变量类似,静态成员函数在声明时要加 static,但在定义时不能加 static。静态成员函数一般都是通过类来调用,也可以通过对象来调用。通过静态成员函数来获得学生的总人数和总成绩:总人数 m_total 和总成绩 m原创 2022-06-01 13:54:26 · 797 阅读 · 1 评论 -
c++中的upper_bound()和lower_bound()的使用
c++中的upper_bound()和lower_bound()的使用STL中关于二分查找的函数有三个lower_bound 、upper_bound 、binary_search 。这三个函数都运用于有序区间(当然这也是运用二分查找的前提),下面记录一下这两个函数。ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置。转载 2022-04-03 10:41:32 · 351 阅读 · 0 评论 -
std::vector::reserve函数
std::vector::reserve函数函数原型/***@function 申请n个元素的内存空间*@param n 元素个数*/void reserve (size_type n);应用场景函数的作用就是申请内存空间,我们知道vector是一种可以自动扩展的容器,也即是可以根据元素个数自动申请内存,那么有什么必要去主动为它申请内存空间呢?答案是有必要的,我们来看个例子。假如要使用vector存储1000个数据:方法1:vector vec, 然后调用1000次 vec.push_b转载 2022-04-01 22:59:36 · 288 阅读 · 0 评论 -
hw成绩排序
成绩排序描述查找和排序题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩都按先录入排列在前的规则处理。例示:jack 70peter 96Tom 70smith 67从高到低 成绩peter 96jack 70Tom 70smith 67从低到高smith 67jack 70Tom 70peter 96注:0代表从高到低,1原创 2021-12-02 23:42:14 · 121 阅读 · 0 评论 -
atoi()和stoi()的区别与使用
atoi()和stoi()的区别与使用相同点:1.都是C++的字符处理函数,把数字字符串转换成int输出2.头文件都是cstring不同点:1.atoi()的参数是 const char* ,因此对于一个字符串str我们必须调用 c_str()的方法把这个string转换成 const char*类型的,而stoi()的参数是const string*,不需要转化为 const char*;如图:2.stoi()会做范围检查,默认范围是在int的范围内的,如果超出范围的话则会runtime转载 2021-11-26 17:46:40 · 898 阅读 · 0 评论 -
C++中unique函数
C++中unique函数unique是STL中很实用的函数之一,需要#include(感谢各位提醒),下面来简单介绍一下它的作用。unique的作用是“去掉”容器中相邻元素的重复元素,这里去掉要加一个引号,为什么呢,是因为它实质上是一个伪去除,它会把重复的元素添加到容器末尾,而返回值是去重之后的尾地址(是地址!!),举个例子:int num[10]={1,1,2,2,2,3,4,5,5,5};int ans=unique(num,num+10)-num;这时,返回的ans是5,而num中前5项就转载 2021-11-16 22:19:31 · 10111 阅读 · 6 评论 -
c++string函数——find、rfind详细用法
c++string函数——find、rfind详细用法string的find函数c++string函数——find、rfind详细用法1.正向查找find()1.1 s.find(str)1.2 s.find(str,pos)1.3 s.find_first_of(str) 和 s.find_last_of(str)1.4查找目标字符串在字符串出现的总次数2.逆向查找rfind()1.正向查找find()1.1 s.find(str)string中find()返回值是字母在母串中的下标位置。如果没转载 2021-11-14 10:57:51 · 652 阅读 · 0 评论 -
仿 LISP 运算
仿 LISP 运算题目描述:LISP 语言唯一的语法就是括号要配对。 形如(OP P1 P2 …),括号内元素由单个空格分割。 其中第一个元素 OP 为操作符,后续元素均为其参数,参数个数取决于操作符类型 注意:参数 P1, P2 也有可能是另外一个嵌套的(OP P1 P2 …) 当前 OP 类型为 add / sub / mul / div(全小写),分别代表整数的加减乘除法简单起见,所有 OP 参数个数均为 2举例:输入:(mul 3 -7) 输出: -21输入:(add 1 2) 输出原创 2021-10-31 21:55:58 · 1282 阅读 · 0 评论 -
Words 重量
Words 重量题目描述:每个句子由多个单词组成,句子中的每个单词的长度都可能不一样, 我们假设每个单词的长度 LW 为该单词的重量,请给出整个句子的平均重量 V。输入描述:输入只有一行,包含一个字符串 S(长度不会超过 100),代表整个句子,句子中只包含大小写的英文字母(不包含标点符号),每个单词之间有一个空格。输出描述:输出 S 的平均重量 V(每个单词的长度之和 / 单词个数)(四舍五入保留两位小数)。示例 1输入:Who Love Mate输出:3.67#include &原创 2021-10-31 18:40:28 · 4927 阅读 · 1 评论 -
字符串统计
字符串统计题目描述:给定两个字符集合,一个为全量字符集,一个为已占用字符集。已占用的字符集中的字符不能再使用,要求输出剩余可用字符集。输入描述:1、输入为一个字符串,一定包含@符号。@前的为全量字符集,@后的字为已占用字符集。2、已占用字符集中的字符一定是全量字符集中的字符。字符集中的字符跟字符之间使用英文逗号分隔。3、每个字符都表示为字符加数字的形式,用英文冒号分隔,比如 a : 1,表示 1 个 a 字符。4、字符只考虑英文字母,区分大小写,数字只考虑正整形,数量不超过 100。5、如原创 2021-10-31 01:25:45 · 801 阅读 · 0 评论 -
卡片组成最大数
卡片组成最大数题目描述:小组中每位都有一张卡片,卡片上是 6 位内的正整数,将卡片连起来可以组成多种数字,计算组成的最大数字。输入描述:“, ”号分割的多个正整数字符串,不需要考虑非数字异常情况,小组最多 25 个人输出描述:最大的数字字符串示例 1输入:22,221输出:22221#include<iostream>#include<string>#include<vector>#include<algorithm>using原创 2021-10-31 00:28:16 · 2230 阅读 · 0 评论 -
银行账户管理系统
银行账户管理系统//date.h#ifndef __DATE_H__ //防止重复包含#define __DATE_H__class Date{private: int year; int month; int day; int totalDays;public: Date(int year,int month,int day); int getYear() const{ return year;} int getMonth() const{ return month;}原创 2021-10-27 23:39:32 · 909 阅读 · 3 评论 -
C++函数声明的时候后面加const
C++函数声明的时候后面加const非静态成员函数后面加const(加到非成员函数或静态成员后面会产生编译错误),表示成员函数隐含传入的this指针为const指针,决定了在该成员函数中,任意修改它所在的类的成员的操作都是不允许的(因为隐含了对this指针的const引用);唯一的例外是对于mutable修饰的成员。加了const的成员函数可以被非const对象和const对象调用,但不加const的成员函数只能被非const对象调用。例如:class A { private: int m_a;原创 2021-10-27 15:17:23 · 844 阅读 · 0 评论 -
德州扑克
德州扑克题目描述:五张牌,每张牌由牌大小和花色组成,牌大小 2~10、J、Q、K、A,牌花色为红桃、黑桃、梅花、方块四种花色之一。 判断牌型 : 牌型 1,同花顺:同一花色的顺子,如红桃 2 红桃 3 红桃 4 红桃 5 红桃 6。 牌型 2,四条:四张相同数字 + 单张,如红桃 A 黑桃 A 梅花 A 方块 A + 黑桃 K。 牌型 3,葫芦:三张相同数字 + 一对,如红桃5 黑桃 5 梅花 5 + 方块 9 梅花 9。 牌型 4,同花:同一花色,如方块 3 方块 7 方块 10 方块 J 方块 Q。原创 2021-10-26 11:35:18 · 1044 阅读 · 0 评论 -
C++使用正则表达式进行替换和遍历
C++使用正则表达式进行替换和遍历#include<iostream>#include<regex>using namespace std;int main(){ smatch results; string str="HyperWorks contains HyperMesh and HyperView and HyperStudy."; //string pat("Hyper[^ ]+[ |.]"); string pat1("Hyper.*\."); reg原创 2021-10-10 15:59:03 · 412 阅读 · 0 评论 -
C语言指针变量的定义和使用(精华)
C语言指针变量的定义和使用数据在内存中的地址也称为指针,如果一个变量存储了一份数据的指针,我们就称它为指针变量。在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。指针变量的值就是某份数据的地址,这样的一份数据可以是数组、字符串、函数,也可以是另外的一个普通变量或指针变量。现在假设有一个 char 类型的变量 c,它存储了字符 ‘K’(ASCII码为十进制数 75),并占用了地址为 0X11A 的内存(地址通常用十六进制表示)。另外有一个指针变量 p,它的值为 0X11A,正好等于变量 c 的原创 2021-09-26 17:42:15 · 376 阅读 · 0 评论 -
C++ 映射map的三种insert插入方式
C++ 映射map的三种insert插入方式构建一个映射,并插入一个二元组。方法1:map<int, int> maps;maps.insert(pair<int, int> (10, 15));方法2:map<int, int> maps;maps.insert(make_pair(10, 15));方法3:map<int, int> maps;typedef pair<int, int> Int_Pair;maps.i转载 2021-09-26 15:46:22 · 436 阅读 · 0 评论 -
C++编程语言中stringstream类介绍
C++编程语言中stringstream类介绍本文主要介绍 C++ 编程语言中 stringstream 类的相关知识,同时通过示例代码介绍 stringstream 类的使用方法。1 概述<sstream>定义了三个类:istringstream、ostringstream 和 stringstream,分别用来进行流的输入、输出和输入输出操作。本文以 stringstream 为主,介绍流的输入和输出操作。<sstream>主要用来进行数据类型转换,由于 &l...原创 2021-09-24 12:14:27 · 184 阅读 · 0 评论