c++ 常用函数

基础:class 基础

C++中::和:的用法

  1. 单冒号:的用法
  • 表示机构内位域的定义(即该变量占几个bit空间)
typedef struct _XXX{
          unsigned char a:4;
          unsigned char :4;
};
  • 构造函数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型。
struct _XXX{
          _XXX() : y(0xc0) {}
          unsigned char c;
} ; XXX
  • 类名冒号后面的是用来定义类的继承。
class 派生类名 : 继承方式 基类名
{
    派生类的成员
};

继承方式:public、private和protected,默认处理是public
派生类:
继承与派生
派生类
继承方式:三种继承方式

  1. 双冒号::的用法
  • 表示“域操作符”,用来表明类作用域或名称空间作用域
    例:声明了一个类A,类A里声明了一个成员函数void f(),但没有在类的声明里给出f的定义,那么在类外定义f时, 就要写成void A::f(),表示这个f()函数是类A的成员函数
    std::cout << “Hello World” << std::endl;表明使用std名称空间下的cout
  • 直接用在全局变量前,表示是全局变量
    全局作用域符号:当全局变量在局部函数中与其中某个变量重名,那么就可以用::来区分如:
char    zhou;    //全局变量
void    sleep()

{
      char    zhou;    //局部变量
      char(局部变量) = char(局部变量) *char(局部变量) ; 
     ::char(全局变量) =::char(全局变量) *char(局部变量);
  • 表示引用成员函数及变量,作用域成员运算符
    作用域符号::的前面一般是类名称,后面一般是该类的成员名称,C++为例避免不同的类有名称相同的成员而采用作用域的方式进行区分
如:A,B表示两个类,在A,B中都有成员member。那么
      A::member就表示类A中的成员member
      B::member就表示类B中的成员member

每个类都会定义自己的作用域,一个类就是一个作用域

Typedef

typedef重命名

std::map用法

std::map
[图片]

std::map简介及find用法

std::vector

std::vector使用总结

//向量专用,压栈的意思,但又有点区别,知道这个函数是每次把元素压到最后面就行了,
vector<int>v;
v.push_back(1);v.push_back(3);v.push_back(2);
=======>v[o]==1
=======>v[1]==3
=======>v[2]==2

using namespace std

C++中std是什么意思?
std–>standard标准 using namespace std告诉编辑器我们将要使用名字空间std中的函数或者对象
using的三种用法

New

new的使用

->

->

nullptr

[图片]

nullptr及与NULL的区别

  • 在函数重载中,宏替换NULL和整型0造成歧义 需要nullptr代表空指针而非整型0
  • 关键字nullptr提高了程序的类型安全性和可读性,与NULL宏定义相比,具有更强的可靠性和扩展性。
  • NULL是一个宏,替换的是0 ,而nullptr是关键字,代表空指针
  • 含义不同,nullptr 代表是空指针,NULL 代表整型数字0
  • nullptr可以清晰地表达代码的意图,能够避免在类型检查时出现一些歧义问题,nullptr只能用于指针类型,不能与整数类型混淆~

析构函数

[图片]

[图片]

explicit关键字详解

explicit详解

Friend Classes友元类

friend class

static_cast 强制类型转换

static_cast基本用法

std::chrono库表示和处理时间

std::chrono

auto

auto

&

&用法

& 符号表示引用(reference)

  • 在C++中,& 符号表示引用(reference)。在函数参数列表中,如果一个参数被声明为引用类型,比如 const GrFlushInfo& info,那么它就是一个引用参数。
  • 引用参数允许函数直接访问调用方提供的变量,而不是对变量进行复制。这样可以减少内存消耗,提高效率,并且允许函数修改调用方提供的变量。在这个例子中,const GrFlushInfo& info 表示一个常量引用,即函数可以通过这个引用访问 GrFlushInfo 类型的对象,但不能修改它。

& 表示取地址
在变量前添加 &

& 表示位与运算
数 & 数的运算

all_of、any_of、none_of算法

all_of、any_of、none_of算法

all_of: 都为真,才返回真
any_of:有一个为真,就返回真
none_of:都不为真,才返回真

Lambda表达式

lambda
在这里插入图片描述
lambda用法

#include <vector>
#include <iostream>
#include <algorithm>
#include <functional>
 
int main()
{
    std::vector<int> c = { 1, 2, 3, 4, 5, 6, 7 };
    int x = 5;
    /*
	std::remove_if:这是一个算法函数,用于从容器中移除满足特定条件的元素。
	c.begin() 和 c.end():这两个函数返回容器 c 的起始和结束迭代器,表示要在整个容器范围内执行操作
	std::remove_if 函数会将满足条件的元素移到容器的末尾,并返回一个指向第一个被移除元素的迭代器。然后,使用 c.erase 函数将这些元素从容器中擦除,保留不满足条件的元素
	*/
    
    c.erase(std::remove_if(c.begin(), c.end(), [x](int n) { return n < x; }), c.end());
 
    std::cout << "c: ";
    std::for_each(c.begin(), c.end(), [](int i) { std::cout << i << ' '; });
    std::cout << '\n';
 
    // 闭包的类型不能被指名,但可用 auto 提及
    // C++14 起,lambda 能拥有自身的默认实参
    auto func1 = [](int i = 6) { return i + 4; };
    std::cout << "func1: " << func1() << '\n';
 
    // 与所有可调用对象相同,闭包能可以被捕获到 std::function 之中
    // (这可能带来不必要的开销)
    std::function<int(int)> func2 = [](int i) { return i + 4; };
    std::cout << "func2: " << func2(6) << '\n';
 
    system("pause");
    return 0;
}

在这里插入图片描述

算术运算符

逻辑运算符

  • 28
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力跟上的码农小酥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值