当前位置: 首页 > news >正文

C++ 常见知识积累

C++八股文面经总结(含答案),收藏起来慢慢看 - linux的文章 - 知乎
https://zhuanlan.zhihu.com/p/669939217

1.函数指针

C++ 中的 函数指针 是一种可以指向函数的指针变量,允许你将函数作为参数传递、存储、动态调用等。它在回调机制、策略模式、动态调度等场景中非常常见。

void sayHello() {std::cout << "Hello callback!" << std::endl;
}void doSomething(void (*callback)()) {// do somethingcallback();  // 调用传入的函数
}int main() {doSomething(sayHello);  // 传入函数作为参数
}

2.lamda表达式

在 C++ 中,Lambda 表达式 是一种用于定义匿名函数(inline 函数对象)的机制,写法简洁、灵活,非常适合用于临时函数逻辑、回调、STL 算法等场景。

[capture](parameters) -> return_type {// function body
};
#include <iostream>
using namespace std;int main() {int base = 10;// 捕获外部变量 base,同时接受两个参数 a 和 bauto add_base = [base](int a, int b) {return a + b + base;};cout << add_base(1, 2) << endl;  // 输出 13return 0;
}

3.bind用法

#include <functional>auto new_func = std::bind(原函数, 参数1, 参数2, ...);
#include <iostream>
#include <functional>
using namespace std;int add(int a, int b) {return a + b;
}int main() {// 绑定第一个参数为10,第二个参数用占位符auto f = std::bind(add, 10, std::placeholders::_1);cout << f(5) << endl;  // 输出 15,相当于调用 add(10, 5)
}

实际上,很多 std::bind 的用法在现代 C++ 中建议用 Lambda 表达式替代

auto f = [](int b){ return add(10, b); };

相关文章:

  • Nginx 强制 HTTPS:提升网站安全性的关键一步
  • Temporary failure in name resolution
  • DVWA-XSS
  • PT5F2307触摸A/D型8-Bit MCU
  • 【Flutter】创建BMI计算器应用并添加依赖和打包
  • Flutter 中 build 方法为何写在 StatefulWidget 的 State 类中
  • 【Vue 3 步骤进度条组件实现与使用教程】
  • RESTful API设计:从原则到Gin实现
  • Rust 学习笔记:泛型
  • 从电商角度设计大模型的 Prompt
  • Baklib知识中台驱动智能服务创新
  • 牛客网NC15869:长方体边长和计算问题解析
  • 力扣热题100, 力扣.167两数之和II 力扣80.删除有序数组中的重复项力扣99.恢复二叉搜索树力扣.110平衡二叉树
  • AtCoder 第406场初级竞赛 A~E题解
  • 如何在element ui中el-select的选择项目中添加自定义图标
  • ABC 353
  • 建立java项目
  • 【电商接口】如何通过小红书订单API实现高效电商数据管理?
  • MQTT报文介绍
  • 怎么把cursor(Cursor/ollama)安装到指定路径
  • 军事新闻最新消息11/新网站应该怎么做seo
  • java做网站的权限管理/网站流量排行