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

沈阳建网站公司许昌长葛网站建设制作设计

沈阳建网站公司,许昌长葛网站建设制作设计,平台推广怎么做,域名到期怎么续费文章目录 前言一、变量模板(Variable Templates)1.1 变量模板是什么1.2 泛型大概使用1.3 示例代码11.4 示例代码21.5 示例代码3 二、Lambda泛型(Lambda Generics)2.1 Lambda表达式泛型是什么?2.2 函数原型怎么写&#…

文章目录

  • 前言
  • 一、变量模板(Variable Templates)
    • 1.1 变量模板是什么
    • 1.2 泛型大概使用
    • 1.3 示例代码1
    • 1.4 示例代码2
    • 1.5 示例代码3
  • 二、Lambda泛型(Lambda Generics)
    • 2.1 Lambda表达式泛型是什么?
    • 2.2 函数原型怎么写?
    • 2.3使用方法
    • 2.4示例代码1
    • 2.5 示例代码2
  • 总结


前言

C++14引入了一些强大的特性,使得程序员能够更加灵活和通用地编写代码。其中两个重要的特性是变量模板和Lambda泛型。本文将详细介绍这两个特性的概念、使用方法以及示例代码。


一、变量模板(Variable Templates)

1.1 变量模板是什么

变量模板允许我们创建通用的变量定义,它可以自动推导出其类型,并且可以根据不同的参数值生成不同的变量。

1.2 泛型大概使用

template <typename T>
constexpr T variable_template = value;

1.3 示例代码1

使用变量模板很简单,只需要按照以下方式声明和使用:

template <typename T>
constexpr T pi = 3.14159;int main() {double radius = 1.0;double area = pi<double> * radius * radius;return 0;
}

在上面的代码中,我们定义了一个名为pi的变量模板,用于表示π的值。在main函数中,我们使用pi来获取pi的double类型值,并计算圆的面积。

1.4 示例代码2

template <typename T>
constexpr T max_value = std::numeric_limits<T>::max();int main() {int max_int = max_value<int>;double max_double = max_value<double>;return 0;
}

在上面的示例中,我们创建了一个名为max_value的变量模板,用于获取特定类型的最大值。通过使用max_value和max_value,我们可以获得int和double类型的最大值。

1.5 示例代码3

template <typename T>
std::vector<T> create_vector(T value, size_t size) {return std::vector<T>(size, value);
}int main() {auto vector_int = create_vector<int>(5, 10);auto vector_double = create_vector<double>(3.14, 5);return 0;
}

在上面的示例中,我们定义了一个名为create_vector的变量模板,用于创建指定类型和大小的向量。通过使用create_vector和create_vector,我们可以创建int和double类型的向量,并初始化其元素。

二、Lambda泛型(Lambda Generics)

2.1 Lambda表达式泛型是什么?

Lambda泛型是C++14中引入的一个特性,它允许我们编写可以接受任意类型参数的Lambda表达式。
使用auto为参数

2.2 函数原型怎么写?

[] (auto parameter) { // code }

2.3使用方法

使用Lambda泛型非常简单,只需以以下形式编写Lambda表达式即可:

auto print = [] (auto value) {std::cout << value << std::endl;
};print(5); // 推导为int类型
print(3.14); // 推导为double类型

在上面的代码中,我们定义了一个名为print的Lambda函数,它可以接受任意类型的参数并打印出该参数的值。通过调用print函数,编译器会自动推导参数的实际类型。

2.4示例代码1

auto add = [] (auto a, auto b) {return a + b;
};int result1 = add(5, 10); // 推导为int类型
double result2 = add(3.14, 2.0); // 推导为double类型

在上面的示例中,我们创建了一个名为add的Lambda函数,它接受两个参数并返回它们的和。通过调用add函数,我们可以用不同类型的参数进行相加的操作。

2.5 示例代码2

std::vector<int> numbers = {1, 2, 3, 4, 5};auto print_greater_than = [] (const auto& container, auto threshold) {for (const auto& element : container) {if (element > threshold) {std::cout << element << std::endl;}}
};

print_greater_than(numbers, 3);
在上面的示例中,我们定义了一个名为print_greater_than的Lambda函数,它接受一个容器和一个阈值,打印出容器中大于阈值的元素。通过调用print_greater_than函数,我们可以根据不同的容器和阈值进行筛选和打印操作。


总结

变量模板和Lambda泛型是C++14引入的两个强大特性,可以使代码更通用和灵活。变量模板允许我们创建通用的变量定义,根据不同的参数值生成不同的变量;Lambda泛型允许我们编写可以接受任意类型参数的Lambda表达式。这两个特性在编写更通用、灵活且代码更简洁的代码时非常有用。

希望本文能够帮助你理解和使用变量模板和Lambda泛型特性。通过灵活运用这些特性,你可以提高代码的可读性和效率,并更好地适应不同的编程需求。

http://www.yayakq.cn/news/801487/

相关文章:

  • 那个网站做图片好看的网站建设目标与期望
  • 扶风做网站网站开发有很多种吗
  • 做金融的喜欢逛哪些网站网站规划怎么写
  • 门户网站开发分类怎样做网络推广方法
  • 高端网站建设专家软件工程师需要考什么证
  • 自动建站网站系统域名商标logo设计图案
  • 免费简历模板制作网站江西新农村建设权威网站
  • 做演示的网站网站制作整个的流程是什么
  • 个人团购网站 转入备案网站建设虚拟服务器
  • 上海普陀网站建设品牌型网站设计推荐
  • 迅雷黄冈网站推广软件鸿蒙最新版本
  • 苏州建设监理有限公司网站wordpress下拉筛选
  • 自己电脑做网站域名备案查询接口
  • 凡科建站的模板 怎么弄下来莞城区仿做网站
  • 优秀的网站开发西安 网站 高端 公司
  • 赣州网站建设哪家便宜新品发布会流程策划方案
  • 用vs与dw做网站wordpress文章内容语音
  • 太仓市建设局网站h5制作
  • 保定 网站制作 招聘河北省建设工程招标投标信息网
  • 网页设计和网站开发的区别推荐家居企业网站建设
  • 山东省建设工程电子信息网站钓鱼网站下载
  • 海淀公司网站建设方案医院网站解决方案
  • 高校廉洁文化建设网站个性化wordpress
  • 扁平化设计风格的网站模板长沙网站制作公司推荐
  • 四川禾力建设工程质量检测有限公司网站推广软件赚钱违法吗
  • 北京网站建设技术托管成都有几家做网站的公司
  • 万网建网站教程WordPress音乐主题模版 Musik
  • 包装材料东莞网站建设北京多语言网站建设
  • 零食网站怎么做工信部网站备案查询步骤
  • 网站编辑内容百度网站排名哪家好