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

网站关键词怎么快速上排名如何看待百度竞价排名

网站关键词怎么快速上排名,如何看待百度竞价排名,重庆市公路建设市场信用信息,产品开发的流程包括哪几个阶段现代 C泛指的是从 C11 之后的 C标准. 从 C11 开始, C标准委员会实行班车制, 没三年发布一个新版本, 如果一个功能在新版本发布之前已经准备好, 则可以加入该版本中, 否则延后到下一个版本. 语言核心 自 C11 开始, 语言语法层面加了许多语法糖, 还有增加了一些新语法.使得 C语…

现代 C++泛指的是从 C++11 之后的 C++标准. 从 C++11 开始, C++标准委员会实行班车制, 没三年发布一个新版本, 如果一个功能在新版本发布之前已经准备好, 则可以加入该版本中, 否则延后到下一个版本.

语言核心

自 C++11 开始, 语言语法层面加了许多语法糖, 还有增加了一些新语法.使得 C++语言更加简洁, 更加易读, 同时更不容易出错.

auto自动类型推导

auto允许程序员在声明变量的时候让编译器自动推导变量的类型, 而不需要显式声明变量的类型.

#include <string>int main() {auto x = 1;auto s = "Hello";auto str = std::string("World");// C++11 之前std::string::iterator it1 = str.begin();// C++11 之后auto it = str.begin();
}

if/switch中声明变量

增加了语法糖, 允许在if/switch中声明一个变量, 这样一方面简化写法, 另一方面限制了变量的可见范围, 提高安全性.

#include <fcntl.h>
#include <unistd.h>#include <iostream>char getOption() { return 'y'; }
int main() {if (auto ret = open("output.txt", O_RDONLY); ret != -1) {std::cout << "open file success" << std::endl;close(ret);}switch (auto c = getOption(); c) {case 'y':[[fallthrough]];case 'Y':std::cout << "yes" << std::endl;break;default:break;}
}

Range based for loop

增加了语法糖, 可以简化for循环写法, 并同时提升安全性.

#include <vector>
#include <print>int main() {// 遍历 vectorstd::vector v{1, 2, 3};for (auto num : v) {std::println("{}", num);}// 遍历数组int array[] = {1, 2, 3};for (auto num : array) {std::println("{}", num);}
}

结构化绑定

#include <map>
#include <print>
#include <string>int main() {std::map<std::string, int> map = {{"a", 1}, {"b", 2}};for (auto [key, value] : map) {std::println("{}:{}", key, value);}// bind to tupleauto tuple = std::make_tuple(1, 2, 3);auto [a, _, c] = tuple;std::println("a={}", a);
}

统一初始化

支持通过花括号{}初始化任意类型的变量. 对泛型编程的场景帮助很大.

#include <string>
#include <vector>int main() {int a{0};std::string str{"Hello"};struct S {std::string name;float num;S(std::string s, float f) : name(s), num(f) {}};S s1{"Alan", 2.7};std::vector<S> v{s1, {"Bob", 85.9}};
}

进一步阅读: C++ 类成员初始化发展历程(从 C++11 到 C++20)

移动语义

移动语义是 C++11 引入的, 主要用来减少不必要的拷贝, 提升性能. 对于一些临时变量, 或者说不会再使用的变量, 则可以采用移动语义来减少拷贝.

#include <string>
#include <vector>std::string GetStr() { return "Hello"; }
int main() {std::vector<std::string> vec;auto s = GetStr();vec.emplace_back(s);             // copyvec.emplace_back(s + "World");   // movevec.emplace_back(GetStr());      // movevec.emplace_back(std::move(s));  // movereturn 0;
}

进一步阅读: C++ 必知必会: 移动语义(Move Semantics)

lambdas 表达式

在编程中经常会用到一些临时函数或者工具函数, 只在局部使用, 并且功能简单. 以往的方式会造成声明语使用位置相距比较远, 影响可读性. lambda 表达式可以允许我们定义一个临时的函数, 并且可以省略函数名.

#include <algorithm>
#include <string>
#include <vector>int main() {struct Record {std::string s1;std::string s2;};std::vector<Record> v = {{"A", "1"}, {"B", "0"}, {"a", "2"}};std::sort(v.begin(), v.end(), [](const auto& p1, const auto& p2) {return p1.s1 < p2.s1 || (p1.s1 == p2.s1 && p1.s2 < p2.s2);});
}

进一步阅读: C++ Lambda 表达式: 简洁与高效的完美结合

constexpr

constexpr 用来声明一个常量表达式, 可以在编译期计算出结果, 并且可以避免运行时计算. 相比起宏定义, constexpr 更加类型安全, 因为本质上讲define是字符串替换, 没有类型检查.

#define SIZE 64
constexpr int size = 64;

进一步阅读:

  • C++ constexpr, consteval 和 constinit 简要介绍
  • C++ 中的 const 和 constexpr: 深入对比与最佳实践

标准库

多线程编程

  1. 线程(std::thread/std::jthread). C++11 引入了线程, 并在 C++20 加入了满足 RAII 要求的jthread. 详情参考: C++20 std::jthread 完全指南 - 简化多线程编程与线程管理
  2. 原子变量(std::atomic): 是一种特殊的变量类型, 它支持原子操作, 这些操作在多线程环境下是不可分割的, 也就是不会被其他线程的操作打断. 这有助于避免多线程访问共享资源时产生的数据竞争问题, 保证数据安全. 进一步阅读: Modern C++ 中的 std::atomic 简介
  3. 互斥锁(std::mutex): 是一种同步机制, 它保证多个线程对共享资源的访问是互斥的. 进一步阅读: 现代 C++锁介绍
  4. Latch 和 Barrier: 线程同步机制, 它们可以确保多个线程在某个事件发生之前不会继续执行. 进一步阅读: C++ Latch 和 Barrier: 新手指南

工具类

  1. string_view: 轻量级视图, 它只包含对数据的引用, 不包含数据本身. 可以简单理解为包含了字符串的指针和长度. 详情参考: 深入理解 C++ std::string_view — 高效字符串操作的利器
  2. optional: 顾名思义, 这个工具包含的数据可能为空, 通常用于表示一个可选的值. 进一步阅读: 现代 C++ 必备知识: 解锁 std::optional, std::variant 和 std::any
  3. variant: 是对于传统的union的一种更安全的替代. 可以保存多个类型的值, 但是只能存储其中一个.
  4. any: any相对于一个特定类型的值就好比void *对于一种特定类型的指针. any可以被赋值为任何类型, 但是只能读取为原始类型.
  5. expected: 对于返回值+错误提示的一种通用表示, 在成功的情况下返回一个可用的值, 否则返回对应的错误类型. 进一步阅读: 解读 C++23 std::expected 函数式写法

总结

本文是对现代 C++新特性的一个简单介绍, 只包含了笔者认为的常用特性, 对细节感兴趣的朋友请查阅相关资料进一步阅读. 这里也有我按版本整理的新特性介绍: 现代 C++, 有兴趣的读者可以进一步浏览.

http://www.dtcms.com/wzjs/460724.html

相关文章:

  • 网站开发需要会什么软件seo整站优化报价
  • 高端网站建设 上海长春网站建设 4435
  • 自己做的网站可以上架烟吗营销方案ppt
  • 什么做网站做个多少钱啊公司快速建站
  • 工程建设其他费东莞seo公司
  • 网站建设对企业的影响合肥网站制作推广
  • 如何做网站免费推广重庆放心seo整站优化
  • 黑龙江省建设集团有限公司网站企业微信会话存档
  • 做直播教程的网站有哪些什么是互联网营销
  • 国外h5制作网站模板下载网络营销项目策划方案
  • 南昌网站开发公司哪家公司好搜索引擎营销的内容和层次有哪些
  • 一个人做网站 优帮云关键词查询网站的工具
  • 网络架构图怎么画电商关键词排名优化怎么做?
  • 网站访问统计方案怎么在网上销售
  • 微信做的团购网站网络营销工具包括
  • 网站设计数据库怎么做网站seo优化价格
  • 帝国cms 网站名称标签百度新闻网
  • 品牌网站建设完善大蝌蚪大数据培训班需要多少钱
  • 如何查一个公司的营业执照灰色seo关键词排名
  • 网络广告投放渠道宁波seo外包推广公司
  • b2c旅游网站建设网站seo排名优化方法
  • excel如何做超链接网站班级优化大师使用心得
  • 拼多多刷销量网站开发公司网址
  • 江苏省建设招标网站网站发布平台
  • 黄页网络的推广网站有哪些好零售客户电商网站
  • 杭州网站设计 site网推公司干什么的
  • site网站连通率0%怎么解决关键词提取
  • 企业网站内容更新怎么操作淘宝seo优化是什么意思
  • 网站初期做几个比较好济南seo网站优化公司
  • 昌平哪有做网站的公司市场营销策划方案3000字