首页 > 编程语言 >C++高级功能

C++高级功能

时间:2024-08-02 19:58:13浏览次数:13  
标签:功能 return int 高级 C++ assert tot template const

Lambda 匿名函数

[只读列表](参数列表) {函数体}

  • 例如:
sort(a + 1, a + n, [](const Data &x, const Data &y) {
    return x.val < y.val;
}
const int k = 5;
auto calc = [k](const int &x) {return x * k;}

template 模板

在 struct/namespace/函数 前加入 template <typename T, ...> 可用类型 T 表示“任意一种类型”。

  • 例如:
template<typename T>
void abs(T x) {
return (x<0) ? -x : x;
}
int x1 = -1;
float x2 = -0.5;
cout << abs(x1) << " " << abs(x2) << endl;
template<typename T, int N>
struct Stack {
T a[N];
int tot;
void pop() {tot--;}
T& top() {return a[tot];}
void push(const T &x) {a[++tot] = x;}
};
Stack<int, 100> S1;
Stack<float, 10> S2;
S1.push(1);
S2.push(0.5);
S1.top()++;
cout << S1.top() << " " << S2.top() << endl;

传递函数

  • using 在 C++11 中有着“重命名、代替”的用处。

  • 利用 using 归纳一个函数并作为参数传递。

用法:using Func = int (&)(int, int)

  • 例如:
int my_add(int x, int y) {return x+y;}
int my_xor(int x, int y) {return x^y;}
using Func = int (&)(int, int);
int sum(int *a, int n, Func op) {
    int ret = 0;
    for (int i=0; i<n; i++)
    ret = op(ret, a[i]);
    return ret;
}
const int N = 4;
int a[N] = {1,2,3,4};
cout << sum(a, N, my_add) << " " << sum(a, N, my_xor) << endl;

调试

assert 用法:assert(条件语句)。当条件成立时什么也不做,不成立时报错,返回该 assert 语句的行标号,并退出程序。

  • 例如:
const int N = 5;
int a[N] = {3, 2, 1, 0, -1};
for (int i=0; i<N; i++)
assert(a[i]>=0);

当 \(i=4\) 时 assert 会报错。

exit 用法:exit(返回值)。结束程序并返回。

标签:功能,return,int,高级,C++,assert,tot,template,const
From: https://www.cnblogs.com/Sktn0089/p/18339492

相关文章

  • 1.机器视觉的概念及其功能
    机器视觉是什么?机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统的特点是提高生产的柔性和自动化程度。在一些不适合于人工作业的危险工作环境或人工视觉难以满足要求的场合,常用机器视觉来替代人工视觉;同时在大批量工业生产过程中,用人工视觉检查产品质量效率低且精......
  • C高级(学习)2024.8.2
    目录1.指针函数概念格式2.函数指针概念格式基本用法3.函数指针数组概念格式  4.共用体格式定义共用体变量特性5.枚举定义格式6.存储类型(1)auto(2)static(3)extern(4)register7.条件编译(1)根据宏是否定义(2)根据宏值(3)防止头文件重复包含(放在头文件中)1.指针函......
  • (爆款)视频APP系统源码(功能强大,界面大气,比任何知识付费视频系统都要强)
    (爆款)视频APP系统源码:重塑视频娱乐新纪元在数字娱乐的浩瀚星空中,一款视频APP系统源码如同璀璨的新星,以其功能之强大、界面之大气,脱颖而出,成为市场瞩目的焦点。这款被誉为“爆款”的视频APP系统源码,不仅超越了传统视频平台的界限,更是在知识付费视频系统的基础上实现了质的飞跃,为......
  • Windows图形界面(GUI)-MFC-C/C++ - 静态文本框(Static Text) - CStatic
    公开视频-> 链接点击跳转公开课程博客首页-> ​​​链接点击跳转博客主页目录静态文本框(StaticText)-CStatic基本概念成员函数示例代码静态文本框(StaticText)-CStatic基本概念静态文本框是一种用于显示文本的控件,用户不能编辑其中的文本。静态文本框......
  • window配置onnxruntime,运行c++版本
    为了使用ONNX-Runtime-Inference这个项目,但是我缺少onnxruntime这个库,网上找了很多教程,但是大多数都是关于linux的,这里简单记录一下我的配置流程找到onnxruntime的release版本开始想着自己去找源码编译,发现这对于新手来说,是个坑,因为源码里面有些库是缺失的,需要自己去下载,并更改......
  • PrismMVVM功能实现(通知、命令)
    常见的MVVM框架,基本围绕ICommand、INotifyPropertyChanged的封装实现绑定、通知等功能;而对于不同框架,在实现相同功能上,只是表现的形式有所不同,下图列举几种常见框架的功能区别:功能\框架PrismMVVMLightMicorsoft.Tookit.Mvvm通知BindableBaseViewModelBaseObservable......
  • 微服务集成springsecurity:功能授权与数据授权
    前言:最近怎么学习真没状态~~~~懒狗模式启动,听说好多在校考研的同学最近也学不下去了。哎呀,最近面了一下鲸浩科技的实习,到现在已经一天没回了,虽然我觉得面得还不错不过应该是挂了吧。功能授权:基于注解preAuthorize,实现RBAC模型提供的权限授权数据授权:这个就比较简单了,通俗的讲就......
  • 【Spark高级应用】使用Spark进行高级数据处理与分析
    Spark高级应用使用Spark进行高级数据处理与分析引言在大数据时代,快速处理和分析海量数据是每个企业面临的重大挑战。ApacheSpark作为一种高效的分布式计算框架,凭借其高速、易用、通用和灵活的特点,已经成为大数据处理和分析的首选工具。本文将深入探讨如何使用Spark进行......
  • 科大讯飞AI学习机P30 值得入手吗 功能介绍
    科大讯飞AI学习机P30是一款功能强大的学习设备,适用于小学到高中各个年龄段的学生。其拥有6GB内存和256GB存储空间,运行更加流畅,存储更加充裕,能够满足学生各种学习和娱乐需求。11英寸护眼平板设计有效减少了眼睛疲劳,保护了学生的视力健康。此外,P30还配备了丰富的英语学习资源和交互......
  • 【C++】学习笔记——智能指针
    文章目录二十一、智能指针1.内存泄漏2.智能指针的使用及原理RAII智能指针的原理auto_ptrunique_ptrshared_ptrshared_ptr的循环引用weak_ptr删除器未完待续二十一、智能指针1.内存泄漏在上一章的异常中,我们了解到如果出现了异常,会中断执行流,跳转到catch处。但......