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

给人做ppt的网站怎么做网站外推

给人做ppt的网站,怎么做网站外推,购物网站开发成本,手机网页小游戏constexpr 是 C11 引入的关键字,用于在编译期进行常量表达式计算,从而提高程序性能和安全性。以下是其核心作用和用法: 一.作用 1编译期 计算 constexpr 变量或函数的值在编译时确定,避免运行时计算开销。例如,数组大…

constexpr 是 C++11 引入的关键字,用于在编译期进行常量表达式计算,从而提高程序性能和安全性。以下是其核心作用和用法:

一.作用

1编译期
计算 constexpr 变量或函数的值在编译时确定,避免运行时计算开销。例如,数组大小、模板参数等需要在编译期确定的场景。

2 类型安全
相比宏(#define),constexpr 提供类型检查,避免宏替换带来的潜在错误。

3代码优化
编译器可以在编译期优化 constexpr 相关的计算,减少运行时负担。

4支持模板元编程
constexpr 函数可用于生成编译时常量,简化模板元编程逻辑。

二. 用法

1. 定义常量表达式变量

constexpr int MAX_SIZE = 100;  // 编译时常量
int arr[MAX_SIZE];             // 合法,MAX_SIZE 在编译期已知

2. 定义常量表达式函数

要求:函数体只能包含返回语句或静态断言,参数和返回值必须是字面类型(如基本类型、枚举、指针等)。

constexpr int square(int x) {return x * x;
}int main() {constexpr int val = square(10);  // 编译期计算,val = 100int arr[val];                   // 合法
}

3. 定义常量表达式构造函数(C++11 起)

要求:构造函数体只能包含简单的初始化逻辑。

struct Point {int x, y;constexpr Point(int x, int y) : x(x), y(y) {}
};
constexpr Point p(1, 2);  // p 在编译期构造

4. C++14 及更高版本的扩展

更复杂的逻辑:constexpr 函数可以包含局部变量、循环、条件语句等。

constexpr int factorial(int n) {int result = 1;for (int i = 1; i <= n; ++i) {result *= i;}return result;
}constexpr int fact_5 = factorial(5);  // 编译期计算,fact_5 = 120

5. 用于模板参数

template <int N>
void printArraySize() {std::cout << "Array size: " << N << std::endl;
}constexpr int size = 10;
printArraySize<size>();  // 输出:Array size: 10

注意事项

constexpr 变量必须初始化且初始值必须是常量表达式。
constexpr 函数的参数和返回值必须是字面类型不能是动态分配的对象或包含运行时行为的类型。
与 const 的区别const:仅表示值不可修改,但可以在运行时初始化。constexpr:要求值必须在编译期确定,且必须是常量表达式。

总结
constexpr 是 C++ 中用于编译期计算的关键特性,适用于需要编译期常量的场景(如数组大小、模板参数等)。通过合理使用 constexpr,可以提高程序性能、增强类型安全,并简化模板元编程逻辑。

三.const 与constexpr 区别

const
表示“不可修改”,适用于运行时逻辑,防止意外修改对象或变量。
constexpr
表示“编译期常量”,适用于需要编译期优化的场景(如数组大小、模板参数),要求值必须在编译期确定。

1. 初始化时间

const
const 变量可以在运行时初始化,其值在初始化后不可修改。例如:
int main() {const int x = getInput();  // 运行时初始化(合法)x = 10;                   // 错误:const 变量不可修改
}
constexpr
constexpr 变量必须在编译期初始化,其值必须是常量表达式。例如:constexpr int y = 10;  // 编译期初始化(合法)
constexpr int z = getInput();  // 错误:getInput() 不是编译期常量

2. 函数和变量

const 函数
const 用于成员函数,表示函数不会修改对象的状态:class MyClass {
public:int getValue() const { return value_; }  // 不会修改对象
private:int value_;
};
constexpr 函数
constexpr 函数必须在编译期可计算,且其返回值是常量表达式:constexpr int square(int x) { return x * x; }int main() {constexpr int val = square(5);  // 编译期计算(合法)
}

3. 构造函数

const 对象
const 对象必须在初始化时赋值,且不能修改:const int a = 10;  // 合法
a = 20;            // 错误:const 对象不可修改
constexpr 构造函数
constexpr 构造函数用于构造编译期常量对象,其初始化列表和函数体必须满足 constexpr 
struct Point {int x, y;constexpr Point(int x, int y) : x(x), y(y) {}
};constexpr Point p(1, 2);  // p 在编译期构造

4. 使用场景

const
适用于需要防止意外修改的场景,例如:

函数参数(防止修改):void print(const std::string& str) { /* ... */ }
成员变量(防止修改):class MyClass {
public:const int id_;  // 初始化后不可修改MyClass(int id) : id_(id) {}
};

constexpr
适用于需要编译期常量的场景,例如:

数组大小:constexpr int SIZE = 100;
int arr[SIZE];  // 合法,SIZE 在编译期已知
模板参数:template <int N>
void printArraySize() {std::cout << "Array size: " << N << std::endl;
}constexpr int size = 10;
printArraySize<size>();  // 输出:Array size: 10

文章转载自:

http://QnZrSPsI.tbLbr.cn
http://QLwf3Woj.tbLbr.cn
http://dtMt2p6K.tbLbr.cn
http://LKnNOge4.tbLbr.cn
http://Zcv3Rz9l.tbLbr.cn
http://2I0GZ8V7.tbLbr.cn
http://qFfFcoSV.tbLbr.cn
http://yG8X0w7a.tbLbr.cn
http://7soyP5tO.tbLbr.cn
http://RgOQGQr4.tbLbr.cn
http://yzpheL83.tbLbr.cn
http://Fhsir7Dq.tbLbr.cn
http://OqiKEKlF.tbLbr.cn
http://oljdjsh0.tbLbr.cn
http://hAHKCQT5.tbLbr.cn
http://qJgUdt7f.tbLbr.cn
http://XjxsP2fY.tbLbr.cn
http://B2DVQmzx.tbLbr.cn
http://BP8f4PZy.tbLbr.cn
http://5VEuwQdv.tbLbr.cn
http://Wb5cMQJv.tbLbr.cn
http://xEZgIiSv.tbLbr.cn
http://m7dvEUvo.tbLbr.cn
http://Ym0vvA6y.tbLbr.cn
http://QNgmg08c.tbLbr.cn
http://CBg64Nrl.tbLbr.cn
http://GhRVziMi.tbLbr.cn
http://7P6drPyD.tbLbr.cn
http://lWtud1md.tbLbr.cn
http://JO5ZzpQ0.tbLbr.cn
http://www.dtcms.com/wzjs/653227.html

相关文章:

  • 个人网站备案不通过网站建设宣传册内容
  • 电子商务网站建设的特点谷歌网页版
  • 深圳那个网站建设大连开发区网页制作
  • 乐山建设局网站深圳关键词排名优化系统
  • 怎么做网站推广方案怎么建设手机端网站
  • 东莞网站建设(信科分公司)郑州外贸网站建设
  • 怎么做58网站吊车网给公众号做头像的网站
  • 优创智汇高端网站建设电话怎么样阿迪达斯网站建设定位
  • 永久个人网站qq小程序开放平台
  • 南宁购物网站建设可视化网页制作
  • 公司网站怎么做百度竞价汽车金融网站怎么做
  • 外贸论坛网站有哪些建设网站需要什么条件
  • 网上做物理题赚钱的网站flow创意博客wordpress主题
  • 无锡建设工程项目代码申请网站网站影响seo的标签
  • 用照片做的ppt模板下载网站乐清网站推广公司
  • 可以做ps兼职的网站wordpress 主题路径
  • 广东省公路建设有限公司网站wordpress安装论坛
  • 油漆工找活做的网站北京网站建设哪家专业
  • 国外优秀网站欣赏对网站建设的维护
  • 网站建设与管理实验目的建设通网站vip
  • 做网站还是移动开发网络建设需求
  • 科普网站建设的支持力度河南天元建设公司网站
  • 谷歌外贸建站多少钱整站seo排名外包
  • 服装网站建设目标有没有关于网站开发的名人访谈
  • 西安做网站公司必达网站开发外包哪家好
  • 网站开发人才可以自学做网站吗
  • 网站栏目内链怎么做水果电商网站开发方案
  • 物流运输网seo研究中心培训机构
  • 上杭县铁路建设办公室网站做手机旅游网站
  • 飞翔时代网站建设wordpress文件上传失败