c++11_14学习之c++14新特性
目录
- 1. 函数返回值类型推导
- 2. lambda泛型及捕获表达式
- 2.1 lambda泛型函数
- 2.2 Lambda 捕获表达式
- 3. 变量模板
- 4. 别名模板
- 5. constexpr的限制
- 6. [[deprecated]]标记
- 7. 二进制字面量与整形字面量分隔符
- 8. std::make_unique
- 9. std::shared_timed_mutex与std::shared_lock
- 10. std::integer_sequence和std::tuple的配合使用:
- 11. std::exchange
- 12. std::quoted
1. 函数返回值类型推导
C++14对函数返回类型推导规则做了优化,先看一段代码:
#include <iostream>using namespace std;auto func(int i) {return i;
}int main() {cout << func(4) << endl;return 0;
}
使用C++11编译:
~/test$ g++ test.cc -std=c++11
test.cc:5:16: error: ‘func’ function uses ‘auto’ type specifier without trailing return typeauto func(int i) {^
test.cc:5:16: note: deduced return type only available with -std=c++14 or -std=gnu++14上面的代码使用C++11是不能通过编译的,通过编译器输出的信息也可以看见这个特性需要到C++14才被支持。返回值类型推导也可以用在模板中:```cpp
#include <iostream>
using namespace std;template<typename T> auto func(T t) { return t; }int main() {cout << func(4) << endl;cout << func(3.4) << endl;return 0;
}
注意:
- 函数内如果有多个return语句,它们必须返回相同的类型,否则编译失败。
auto func(bool flag) {if (flag) return 1;else return 2.3; // error
}
// inconsistent deduction for auto return type: ‘int’ and then ‘double’
- 如果return语句返回初始化列表,返回值类型推导也会失败
auto func() {return {1, 2, 3}; // error returning initializer list
}
- 如果函数是虚函数,不能使用返回值类型推导
struct A {// error: virtual function cannot have deduced return typevirtual auto func() { return 1; }
}
- 返回类型推导可以用在前向声明中,但是在使用它们之前,翻译单元中必须能够得到函数定义
auto f(); // declared, not yet defined
auto f() { return 42; } // defined, return type is intint main() {cout << f() << endl;
}
- 返回类型推导可以用在递归函数中,但是递归调用必须以至少一个返回语句作为先导,以便编译器推导出返回类型。
auto sum(int i) {if (i == 1)return i; // return intelsereturn sum(i - 1) + i; // ok
}
C++14 增加了 decltype(auto)的语法。这允许不必显式指定作为 decltype 参数的表达式,而使用 decltype 对于给定表达式的推断规则。
decltype(auto)的语法也可以用于返回类型推导,只需用 decltype(auto)代替 auto。
2. lambda泛型及捕获表达式
2.1 lambda泛型函数
- auto参数
在C++11中,lambda表达式参数需要使用具体的类型声明:
auto f = [] (int a) { return a; }
在C++14中,对此进行优化,lambda表达式参数可以直接是auto:
auto f = [] (auto a) { return a; };
cout << f(1) << endl;
cout << f(2.3f) << endl;
- 泛型
auto lambda = [](auto x, auto y) {return x + y;}
泛型 lambda 函数遵循模板参数推导的规则。以上代码的作用与下面的代码相同:
struct unnamed_lambda
{
template<typename T, typename U>
auto operator()(T x, U y) const {return x + y;}
};auto lambda = unnamed_lambda();
2.2 Lambda 捕获表达式
C++11 的 lambda 函数通过值拷贝(by copy)或引用(by reference)捕获(capture)已在外层作用域声明的变量。这意味着 lambda 的值成员不可以是 move-only 的类型。C++14允许被捕获的成员用任意的表达式初始化。这既允许了 capture by value-move,也允许了任意声明 lambda 的成员,而不需要外层作用域有一个具有相应名字的变量。
这是通过使用一个初始化表达式完成的:
auto lambda = [value = 1] {return value;}
lambda 函数 lambda 的返回值是 1,说明 value 被初始化为 1。被声明的捕获变量的类型会根据初始化表达式推断,推断方式与用 auto 声明变量相同。
使用标准函数 std::move 可以使之被用以通过 move 捕获:
auto ptr = std::make_unique<int>(10); //See below for std::make_uniqueauto lambda = [ptr = std::move(ptr)] {return *ptr;}
声明 ptr = std::move(ptr)使用了两次 ptr。第一次使用声明了一个新的变量,但在捕获部分,这个变量还不在作用域内。所以第二个 ptr 表示之前在 lambda 之外声明的变量。
3. 变量模板
C++14支持变量模板:
template<class T>
constexpr T pi = T(3.1415926535897932385L);int main() {cout << pi<int> << endl; // 3cout << pi<double> << endl; // 3.14159return 0;
}
4. 别名模板
C++14也支持别名模板:
template<typename T, typename U>
struct A {T t;U u;
};template<typename T>
using B = A<T, int>;int main() {B<double> b;b.t = 10;b.u = 20;cout << b.t << endl;cout << b.u << endl;return 0;
}
5. constexpr的限制
C++14相较于C++11对constexpr减少了一些限制:
- C++11中constexpr函数可以使用递归,在C++14中可以使用局部变量和循环
constexpr int factorial(int n) { // C++14 和 C++11均可return n <= 1 ? 1 : (n * factorial(n - 1));
}
在C++14中可以这样做:
constexpr int factorial(int n) { // C++11中不可,C++14中可以int ret = 0;for (int i = 0; i < n; ++i) {ret += i;}return ret;
}
- C++11中constexpr函数必须必须把所有东西都放在一个单独的return语句中,而constexpr则无此限制:
constexpr int func(bool flag) { // C++14 和 C++11均可return 0;
}
在C++14中可以这样:
constexpr int func(bool flag) { // C++11中不可,C++14中可以if (flag) return 1;else return 0;
}
6. [[deprecated]]标记
C++14中增加了deprecated标记,修饰类、变、函数等,当程序中使用到了被其修饰的代码时,编译时被产生警告,用户提示开发者该标记修饰的内容将来可能会被丢弃,尽量不要使用。
struct [[deprecated]] A { };int main() {A a;return 0;
}
当编译时,会出现如下警告:
~/test$ g++ test.cc -std=c++14
test.cc: In function ‘int main()’:
test.cc:11:7: warning: ‘A’ is deprecated [-Wdeprecated-declarations]A a;^
test.cc:6:23: note: declared herestruct [[deprecated]] A {
7. 二进制字面量与整形字面量分隔符
C++14引入了二进制字面量,也引入了分隔符,防止看起来眼花哈~
int a = 0b0001'0011'1010;
double b = 3.14'1234'1234'1234;
8. std::make_unique
我们都知道C++11中有std::make_shared,却没有std::make_unique,在C++14已经改善。
struct A {};
std::unique_ptr<A> ptr = std::make_unique<A>();
9. std::shared_timed_mutex与std::shared_lock
C++14通过std::shared_timed_mutex和std::shared_lock来实现读写锁,保证多个线程可以同时读,但是写线程必须独立运行,写操作不可以同时和读操作一起进行。
实现方式如下:
struct ThreadSafe {mutable std::shared_timed_mutex mutex_;int value_;ThreadSafe() {value_ = 0;}int get() const {std::shared_lock<std::shared_timed_mutex> loc(mutex_);return value_;}void increase() {std::unique_lock<std::shared_timed_mutex> lock(mutex_);value_ += 1;}
};
为什么是timed的锁呢,因为可以带超时时间,具体可以自行查询相关资料哈,网上有很多。
std::integer_sequence
template<typename T, T... ints>
void print_sequence(std::integer_sequence<T, ints...> int_seq)
{std::cout << "The sequence of size " << int_seq.size() << ": ";((std::cout << ints << ' '), ...);std::cout << '\n';
}int main() {print_sequence(std::integer_sequence<int, 9, 2, 5, 1, 9, 1, 6>{});return 0;
}输出:7 9 2 5 1 9 1 6
10. std::integer_sequence和std::tuple的配合使用:
template <std::size_t... Is, typename F, typename T>
auto map_filter_tuple(F f, T& t) {return std::make_tuple(f(std::get<Is>(t))...);
}template <std::size_t... Is, typename F, typename T>
auto map_filter_tuple(std::index_sequence<Is...>, F f, T& t) {return std::make_tuple(f(std::get<Is>(t))...);
}template <typename S, typename F, typename T>
auto map_filter_tuple(F&& f, T& t) {return map_filter_tuple(S{}, std::forward<F>(f), t);
}
11. std::exchange
直接看代码吧:
int main() {std::vector<int> v;std::exchange(v, {1,2,3,4});cout << v.size() << endl;for (int a : v) {cout << a << " ";}return 0;
}
看样子貌似和std::swap作用相同,那它俩有什么区别呢?
可以看下exchange的实现:
template<class T, class U = T>
constexpr T exchange(T& obj, U&& new_value) {T old_value = std::move(obj);obj = std::forward<U>(new_value);return old_value;
}
可以看见new_value的值给了obj,而没有对new_value赋值,这里相信您已经知道了它和swap的区别了吧!
12. std::quoted
C++14引入std::quoted用于给字符串添加双引号,直接看代码:
int main() {string str = "hello world";cout << str << endl;cout << std::quoted(str) << endl;return 0;
}
编译&输出:
~/test$ g++ test.cc -std=c++14
~/test$ ./a.out
hello world
"hello world"
参考链接:https://blog.csdn.net/qq_41854911/article/details/119657617
相关文章
- ModStartBlog v7.0.0 网站简单统计,支持博客分享
ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场,后台一键快速安装 …...
2023/3/28 17:25:20 - Pytorch : 模型部署
Pytorch部署 将模型导出为torchscript,参考链接 libtorch C 组成部分 根据 PyTorch 官方文档 的介绍,PyTorch的C API可以粗略分为以下五个部分: ATen:基础的张量和数学计算库,其他的部分都以此为基础。Autograd&a…...
2023/3/28 17:24:18 - 脉诊之脉象——平脉,常见病脉,七绝脉
平脉与病脉诊脉纲领平人脉象常见病脉浮脉沉脉迟脉数脉虚脉实脉涩脉洪脉细脉滑脉弦脉紧脉长脉短脉弱脉芤脉结脉代脉七绝脉釜沸脉鱼翔脉虾游脉屋漏脉雀啄脉解索脉弹石脉预后诊脉纲领 脉跳动的力度:有力者,气足也。无力者,气不足也。 脉…...
2023/3/28 17:21:20 - Chatgpt-3 使用的提取积累数据集技术和数据集自动化处理
为了积累数据集,ChatGPT-3使用了一系列技术来从不同来源的文本中提取数据。其中最常用的技术包括: Web scraping:ChatGPT-3使用Web scraping技术从互联网上的网页中提取文本。它可以自动化抓取网页,并从中提取出需要的信息。 数据…...
2023/3/28 17:18:46 - JavaScript实现伽马函数(gamma())
文章目录前言伽马函数(Gamma)实现前言 伽玛函数(Gamma函数),也叫欧拉第二积分,是阶乘函数在实数与复数上扩展的一类函数。该函数在分析学、概率论、偏微分方程和组合数学中有重要的应用。与之有密切联系的…...
2023/3/28 17:16:34 - 2023年先进无人飞行系统国际会议(ICAUAS 2023) | IOP JPCS独立出版
会议简介 Brief Introduction 2023年先进无人飞行系统国际会议(ICAUAS 2023) 会议时间:2023年7月13日-16日 召开地点:中国哈尔滨&加拿大多伦多双会场 大会官网: ICAUAS 2023-2023 International Conference on Advanced Unmanned Aerial …...
2023/3/28 17:16:05 - 20230327----重返学习-轮播图-function的ES6变量提升问题
day-036-thirty-six-20230327-轮播图-function的ES6变量提升问题 轮播图 设置好布局 <div class"container" id"bannerBox"><div class"wrapper"><div class"slide"><img src"./images/banner01.png"…...
2023/3/28 17:12:38 - 怎么把两个音频合成一个
在创作音乐、制作视频等领域,经常需要将音频文件进行合并处理,但对于没有专业工具和知识的朋友来说,音频合并可能是一项复杂的任务。本篇文章就要为大家介绍合并音频的方法,让大家能够快速地将音频文件合并成需要的部分࿰…...
2023/3/28 17:11:41 - 不过是一枚长安的荔枝
一、弱水三千只取一瓢 一骑红尘妃子笑,无人知是荔枝来。 当读你到杜牧这句诗时,会想到什么? 16岁的我,未经风霜,满眼皆是浪漫。 唐玄宗独宠杨玉环,岭南八百里加急日夜奔袭,只为她能吃上一口新鲜…...
2023/3/28 17:10:34 - Web网站服务2.1
2.1.httpd服务的访问控制 为了跟多的控制对网站资源的访问,可以为特定的网站目录添加访问授权 2.1.1客户机地址受限通过Require配置项,可以根据主机的主机名或者IP地址来决定是否允许客户机访问。在httpd服务器的主配置文件的<Location><Direc…...
2023/3/28 17:07:46 - 【vue】计算属性及其缓存特性
基础示例 模板中的表达式虽然方便,但也只能用来做简单的操作。如果在模板中写太多逻辑,会让模板变得臃肿,难以维护。比如说,我们有这样一个包含嵌套数组的对象: export default {data() {return {author: {name: Joh…...
2023/3/28 17:06:01 - 接口自动化测试,完整入门篇
目录 1. 什么是接口测试2. 基本流程3. 需求分析4. 用例设计5. 脚本开发6. 结果分析7. 完整脚本8. 参考资料1. 什么是接口测试 顾名思义,接口测试是对系统或组件之间的接口进行测试,主要是校验数据的交换,传递和控制管理过程,以及…...
2023/3/28 17:02:20 - Web前端学习:章四 -- JavaScript初级(五)-- 函数
151:函数的参数的基本使用 1、function(参数) 函数的参数,可以有多个,也可以没有,也可以是任何数据类型; (1)参数作用:让函数活起来 没有参数,…...
2023/3/28 17:01:02 - uniapp 微信小程序配置全局主题色、实现动态修改主题色
前言: 本文的实现目标是全局配置小程序的整体主题色,包括本地图标的色调。第一步实现在本地可以统一修改整体的主题色以及本地图标的颜色;第二步实现通过后台接口动态调整小程序前端的整体主题色以及本地图标颜色。本地图标的主题色调整需要使…...
2023/3/28 16:58:08 - 【Spring Boot基础】@ConfigurationProperties的使用
一、代码展示 1、新建Person类,代码如下: package com.lc.springboot_testbilbil;import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import org.springframework.web.…...
2023/3/28 16:57:00 - 第22章 随机波动率模型:均值回归假设及存在相关性时的微笑曲线
这学期会时不时更新一下伊曼纽尔德曼(Emanuel Derman) 教授与迈克尔B.米勒(Michael B. Miller)的《The Volatility Smile》这本书,本意是协助导师课程需要,发在这里有意的朋友们可以学习一下,思…...
2023/3/28 16:56:49 - mapbox-gl 2.13.0 Windows 10环境下编译
1.下载mapbox-gl.js源码包,解压 2.按照源码中CONTRIBUTING.md描述,配置基础环境 [node.js](https://nodejs.org/) version 14, [yarn](https://yarnpkg.com/en/docs/install#windows-tab), [npm and node-gyp](https://github.com/Microsoft/nodejs-…...
2023/3/28 16:54:01 - ShareSDK常见问题
QQ-分享报错901111,9001010等 由于QQ现在需要审核后才可以分享(之前分享不需要审核),所以此错误解决方法只需通过腾讯开放平台的审核即可,另外要检查注册好的应用的基本信息,包名、md5签名和Bundle id是不…...
2023/3/28 16:52:36 - PCB模块化设计09——RJ45-以太网口PCB布局布线设计规范
目录PCB模块化设计09——RJ45-以太网口PCB布局布线设计规范1、以太网口概述2、RJ45的典型应用3、以太网的典型电路设计①集成网络变压器的RJ45设计方式②变压器分离的的RJ45设计方式4、布局要求5、布线要求PCB模块化设计09——RJ45-以太网口PCB布局布线设计规范 1、以太网口概…...
2023/3/28 16:49:58 - axios使用
参考地址:https://github.com/axios/axios html CDN <script src"https://cdn.jsdelivr.net/npm/axios1.1.2/dist/axios.min.js"></script>或者 <script src"https://unpkg.com/axios1.1.2/dist/axios.min.js"></scrip…...
2023/3/28 16:49:20 - 基于springboot和Web实现社区医院管理服务系统【源码+论文】
基于springboot和Web实现社区医院管理服务系统演示开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Ma…...
2023/3/28 16:49:07 - 【西安】SWAT模型高阶十七项案例分析
【案例实践】:本次学习共十七个实践案例 1)遥感产品和SWAT模型快速建模 2)基于水文响应单元(HRU)的水资源时空分布特征 3)基于自定义流域与河道的SWAT模型建模与分析 4)子流域划分原理及其对模型不确定性的影响 5)坡度划分原理及其对模型不确…...
2023/3/28 16:48:23 - 一文带你彻底搞懂ThreadLocal
前言 ThreadLocal的相关问题也是比较常见的面试题了,网上也有相当多的文章,但是看了很多篇,也没说实际场景,内容也都差不多。ThreadLocalMap、弱引用、内存泄漏等概念都能背下来了,但还是不能理解,真就是当…...
2023/3/28 16:40:59 - 2023年Java岗面试八股文及答案整理(金三银四最新版)
春招,秋招,社招,我们Java程序员的面试之路,是挺难的,过了HR,还得被技术面,小刀在去各个厂面试的时候,经常是通宵睡不着觉,头发都脱了一大把,还好最终侥幸能够…...
2023/3/28 16:40:37 - 浅谈常量字符串
今天早上看网课刚好学到字符函数的部分,刚好对常量字符串有些疑惑的地方,现在组织了下语言,把今天关于常量字符串的思考写成这篇博客 当我们编写程序时,常量字符串是一种非常常见的数据类型。常量字符串指的是在程序中声明的一个不…...
2023/3/28 16:40:24 - Python 中 如何向函数传递列表?
嗨害大家好,我是芝士❤ 今天也是来给大家整点干货的一天~ 把列表传递给函数后, 函数就能直接访问列表中的内容咯。 假设有一组专家,我们想邀请他们参加研讨会。 def send_invitation(experts):发送邀请函for expert in experts:print(expe…...
2023/3/28 16:39:59 - MQ是什么
目录MQ是什么MQ是什么 MQ全称为Message Queue,也就是消息队列,是应用程序和应用程序之间的通信方法。 在微服务盛行的当下,MQ被使用的也是越来越多,一般常用来进行「业务异步解耦」、「解耦微服务」、「流量削峰填谷」、「消息分…...
2023/3/28 16:39:18 - mit6.824-MapReduce概念及Lab1的实现
本文是我学习MIT 6.824 Lab1的笔记,主要内容是对于MapReduce的理解和Lab1的实现。 MapReduce框架 如果还没有接触过MapReduce,最好先阅读一下MapReduce论文,如果阅读英文论文对你来说有些困难,也可以阅读MapReduce论文译文。 M…...
2023/3/28 16:33:49 - 1.3 从0开始学Unity游戏开发--引擎和编辑器
上一篇讲到游戏运作的原理是非常简单的,实现一个五子棋很可能只需要使用操作系统提供的原生开发环境,简单的做一些代码实现即可完成,我自己在大学的时候就找到了一个一步一步教你使用Windows API开发一个五子棋游戏的教程,需要用到的也只需要安装一个visual studio顺便安装…...
2023/3/28 16:33:36 - OPenCV中的机器学习
博主简介 博主是一名大二学生,主攻人工智能研究。感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c,Python,爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主,博主会继续更新的,…...
2023/3/28 16:31:33
最新文章
- ModStartBlog v7.0.0 网站简单统计,支持博客分享
ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场,后台一键快速安装 …...
2023/3/28 17:25:20 - Pytorch : 模型部署
Pytorch部署 将模型导出为torchscript,参考链接 libtorch C 组成部分 根据 PyTorch 官方文档 的介绍,PyTorch的C API可以粗略分为以下五个部分: ATen:基础的张量和数学计算库,其他的部分都以此为基础。Autograd&a…...
2023/3/28 17:24:18 - 脉诊之脉象——平脉,常见病脉,七绝脉
平脉与病脉诊脉纲领平人脉象常见病脉浮脉沉脉迟脉数脉虚脉实脉涩脉洪脉细脉滑脉弦脉紧脉长脉短脉弱脉芤脉结脉代脉七绝脉釜沸脉鱼翔脉虾游脉屋漏脉雀啄脉解索脉弹石脉预后诊脉纲领 脉跳动的力度:有力者,气足也。无力者,气不足也。 脉…...
2023/3/28 17:21:20 - Chatgpt-3 使用的提取积累数据集技术和数据集自动化处理
为了积累数据集,ChatGPT-3使用了一系列技术来从不同来源的文本中提取数据。其中最常用的技术包括: Web scraping:ChatGPT-3使用Web scraping技术从互联网上的网页中提取文本。它可以自动化抓取网页,并从中提取出需要的信息。 数据…...
2023/3/28 17:18:46 - JavaScript实现伽马函数(gamma())
文章目录前言伽马函数(Gamma)实现前言 伽玛函数(Gamma函数),也叫欧拉第二积分,是阶乘函数在实数与复数上扩展的一类函数。该函数在分析学、概率论、偏微分方程和组合数学中有重要的应用。与之有密切联系的…...
2023/3/28 17:16:34 - 2023年先进无人飞行系统国际会议(ICAUAS 2023) | IOP JPCS独立出版
会议简介 Brief Introduction 2023年先进无人飞行系统国际会议(ICAUAS 2023) 会议时间:2023年7月13日-16日 召开地点:中国哈尔滨&加拿大多伦多双会场 大会官网: ICAUAS 2023-2023 International Conference on Advanced Unmanned Aerial …...
2023/3/28 17:16:05 - 20230327----重返学习-轮播图-function的ES6变量提升问题
day-036-thirty-six-20230327-轮播图-function的ES6变量提升问题 轮播图 设置好布局 <div class"container" id"bannerBox"><div class"wrapper"><div class"slide"><img src"./images/banner01.png"…...
2023/3/28 17:12:38 - 怎么把两个音频合成一个
在创作音乐、制作视频等领域,经常需要将音频文件进行合并处理,但对于没有专业工具和知识的朋友来说,音频合并可能是一项复杂的任务。本篇文章就要为大家介绍合并音频的方法,让大家能够快速地将音频文件合并成需要的部分࿰…...
2023/3/28 17:11:41 - 不过是一枚长安的荔枝
一、弱水三千只取一瓢 一骑红尘妃子笑,无人知是荔枝来。 当读你到杜牧这句诗时,会想到什么? 16岁的我,未经风霜,满眼皆是浪漫。 唐玄宗独宠杨玉环,岭南八百里加急日夜奔袭,只为她能吃上一口新鲜…...
2023/3/28 17:10:34 - Web网站服务2.1
2.1.httpd服务的访问控制 为了跟多的控制对网站资源的访问,可以为特定的网站目录添加访问授权 2.1.1客户机地址受限通过Require配置项,可以根据主机的主机名或者IP地址来决定是否允许客户机访问。在httpd服务器的主配置文件的<Location><Direc…...
2023/3/28 17:07:46 - 【vue】计算属性及其缓存特性
基础示例 模板中的表达式虽然方便,但也只能用来做简单的操作。如果在模板中写太多逻辑,会让模板变得臃肿,难以维护。比如说,我们有这样一个包含嵌套数组的对象: export default {data() {return {author: {name: Joh…...
2023/3/28 17:06:01 - 接口自动化测试,完整入门篇
目录 1. 什么是接口测试2. 基本流程3. 需求分析4. 用例设计5. 脚本开发6. 结果分析7. 完整脚本8. 参考资料1. 什么是接口测试 顾名思义,接口测试是对系统或组件之间的接口进行测试,主要是校验数据的交换,传递和控制管理过程,以及…...
2023/3/28 17:02:20 - Web前端学习:章四 -- JavaScript初级(五)-- 函数
151:函数的参数的基本使用 1、function(参数) 函数的参数,可以有多个,也可以没有,也可以是任何数据类型; (1)参数作用:让函数活起来 没有参数,…...
2023/3/28 17:01:02 - uniapp 微信小程序配置全局主题色、实现动态修改主题色
前言: 本文的实现目标是全局配置小程序的整体主题色,包括本地图标的色调。第一步实现在本地可以统一修改整体的主题色以及本地图标的颜色;第二步实现通过后台接口动态调整小程序前端的整体主题色以及本地图标颜色。本地图标的主题色调整需要使…...
2023/3/28 16:58:08 - 【Spring Boot基础】@ConfigurationProperties的使用
一、代码展示 1、新建Person类,代码如下: package com.lc.springboot_testbilbil;import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import org.springframework.web.…...
2023/3/28 16:57:00 - 第22章 随机波动率模型:均值回归假设及存在相关性时的微笑曲线
这学期会时不时更新一下伊曼纽尔德曼(Emanuel Derman) 教授与迈克尔B.米勒(Michael B. Miller)的《The Volatility Smile》这本书,本意是协助导师课程需要,发在这里有意的朋友们可以学习一下,思…...
2023/3/28 16:56:49 - mapbox-gl 2.13.0 Windows 10环境下编译
1.下载mapbox-gl.js源码包,解压 2.按照源码中CONTRIBUTING.md描述,配置基础环境 [node.js](https://nodejs.org/) version 14, [yarn](https://yarnpkg.com/en/docs/install#windows-tab), [npm and node-gyp](https://github.com/Microsoft/nodejs-…...
2023/3/28 16:54:01 - ShareSDK常见问题
QQ-分享报错901111,9001010等 由于QQ现在需要审核后才可以分享(之前分享不需要审核),所以此错误解决方法只需通过腾讯开放平台的审核即可,另外要检查注册好的应用的基本信息,包名、md5签名和Bundle id是不…...
2023/3/28 16:52:36 - PCB模块化设计09——RJ45-以太网口PCB布局布线设计规范
目录PCB模块化设计09——RJ45-以太网口PCB布局布线设计规范1、以太网口概述2、RJ45的典型应用3、以太网的典型电路设计①集成网络变压器的RJ45设计方式②变压器分离的的RJ45设计方式4、布局要求5、布线要求PCB模块化设计09——RJ45-以太网口PCB布局布线设计规范 1、以太网口概…...
2023/3/28 16:49:58 - axios使用
参考地址:https://github.com/axios/axios html CDN <script src"https://cdn.jsdelivr.net/npm/axios1.1.2/dist/axios.min.js"></script>或者 <script src"https://unpkg.com/axios1.1.2/dist/axios.min.js"></scrip…...
2023/3/28 16:49:20 - 基于springboot和Web实现社区医院管理服务系统【源码+论文】
基于springboot和Web实现社区医院管理服务系统演示开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Ma…...
2023/3/28 16:49:07 - 【西安】SWAT模型高阶十七项案例分析
【案例实践】:本次学习共十七个实践案例 1)遥感产品和SWAT模型快速建模 2)基于水文响应单元(HRU)的水资源时空分布特征 3)基于自定义流域与河道的SWAT模型建模与分析 4)子流域划分原理及其对模型不确定性的影响 5)坡度划分原理及其对模型不确…...
2023/3/28 16:48:23 - 一文带你彻底搞懂ThreadLocal
前言 ThreadLocal的相关问题也是比较常见的面试题了,网上也有相当多的文章,但是看了很多篇,也没说实际场景,内容也都差不多。ThreadLocalMap、弱引用、内存泄漏等概念都能背下来了,但还是不能理解,真就是当…...
2023/3/28 16:40:59 - 2023年Java岗面试八股文及答案整理(金三银四最新版)
春招,秋招,社招,我们Java程序员的面试之路,是挺难的,过了HR,还得被技术面,小刀在去各个厂面试的时候,经常是通宵睡不着觉,头发都脱了一大把,还好最终侥幸能够…...
2023/3/28 16:40:37 - 浅谈常量字符串
今天早上看网课刚好学到字符函数的部分,刚好对常量字符串有些疑惑的地方,现在组织了下语言,把今天关于常量字符串的思考写成这篇博客 当我们编写程序时,常量字符串是一种非常常见的数据类型。常量字符串指的是在程序中声明的一个不…...
2023/3/28 16:40:24 - Python 中 如何向函数传递列表?
嗨害大家好,我是芝士❤ 今天也是来给大家整点干货的一天~ 把列表传递给函数后, 函数就能直接访问列表中的内容咯。 假设有一组专家,我们想邀请他们参加研讨会。 def send_invitation(experts):发送邀请函for expert in experts:print(expe…...
2023/3/28 16:39:59 - MQ是什么
目录MQ是什么MQ是什么 MQ全称为Message Queue,也就是消息队列,是应用程序和应用程序之间的通信方法。 在微服务盛行的当下,MQ被使用的也是越来越多,一般常用来进行「业务异步解耦」、「解耦微服务」、「流量削峰填谷」、「消息分…...
2023/3/28 16:39:18 - mit6.824-MapReduce概念及Lab1的实现
本文是我学习MIT 6.824 Lab1的笔记,主要内容是对于MapReduce的理解和Lab1的实现。 MapReduce框架 如果还没有接触过MapReduce,最好先阅读一下MapReduce论文,如果阅读英文论文对你来说有些困难,也可以阅读MapReduce论文译文。 M…...
2023/3/28 16:33:49 - 1.3 从0开始学Unity游戏开发--引擎和编辑器
上一篇讲到游戏运作的原理是非常简单的,实现一个五子棋很可能只需要使用操作系统提供的原生开发环境,简单的做一些代码实现即可完成,我自己在大学的时候就找到了一个一步一步教你使用Windows API开发一个五子棋游戏的教程,需要用到的也只需要安装一个visual studio顺便安装…...
2023/3/28 16:33:36 - OPenCV中的机器学习
博主简介 博主是一名大二学生,主攻人工智能研究。感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c,Python,爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主,博主会继续更新的,…...
2023/3/28 16:31:33