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

今日新闻头条新闻网络seo外包

今日新闻头条新闻,网络seo外包,web前端软件,科技网站哪个好文章目录 C11 中的 STL 新增内容容器算法 C14 中的 STL 新增内容容器算法 C17 中的 STL 新增内容容器算法 C20 中的 STL 新增内容容器算法 C11 中的 STL 新增内容 容器 std::array:这是一个固定大小的数组容器,和原生数组类似,但具备更好的…

文章目录

      • C++11 中的 STL 新增内容
        • 容器
        • 算法
      • C++14 中的 STL 新增内容
        • 容器
        • 算法
      • C++17 中的 STL 新增内容
        • 容器
        • 算法
      • C++20 中的 STL 新增内容
        • 容器
        • 算法

C++11 中的 STL 新增内容

容器
  • std::array:这是一个固定大小的数组容器,和原生数组类似,但具备更好的接口与安全性。它在栈上分配内存,大小在编译时确定。
#include <array>
#include <iostream>
int main() {std::array<int, 5> arr = {1, 2, 3, 4, 5};for (int num : arr) {std::cout << num << " ";}return 0;
}
  • std::unordered_setstd::unordered_map:这两个容器分别是 std::setstd::map 的无序版本。它们采用哈希表实现,查找、插入和删除操作的平均时间复杂度为 O ( 1 ) O(1) O(1)
#include <unordered_set>
#include <iostream>
int main() {std::unordered_set<int> us = {1, 2, 3};for (int num : us) {std::cout << num << " ";}return 0;
}
  • std::forward_list:这是一个单向链表容器,相比于 std::list(双向链表),它占用的空间更少,插入和删除操作更快。
算法
  • std::all_ofstd::any_ofstd::none_of:这些算法用于检查范围中的元素是否满足特定条件。
#include <algorithm>
#include <vector>
#include <iostream>
int main() {std::vector<int> vec = {1, 2, 3, 4, 5};bool all_positive = std::all_of(vec.begin(), vec.end(), [](int i) { return i > 0; });std::cout << (all_positive ? "All positive" : "Not all positive") << std::endl;return 0;
}

C++14 中的 STL 新增内容

容器
  • std::make_unique:用于创建 std::unique_ptr 对象,提供了更简洁的方式来管理动态分配的内存。
#include <memory>
#include <iostream>
class MyClass {
public:MyClass() { std::cout << "Constructed" << std::endl; }~MyClass() { std::cout << "Destroyed" << std::endl; }
};
int main() {auto ptr = std::make_unique<MyClass>();return 0;
}
算法
  • 泛型 lambda 表达式:允许 lambda 表达式的参数使用 auto 类型,增强了 lambda 表达式的通用性。
#include <iostream>
int main() {auto add = [](auto a, auto b) { return a + b; };std::cout << add(1, 2) << std::endl;std::cout << add(1.5, 2.5) << std::endl;return 0;
}

C++17 中的 STL 新增内容

容器
  • std::optional:表示一个可能存在的值,可用于避免返回空指针或错误码。
#include <optional>
#include <iostream>
std::optional<int> divide(int a, int b) {if (b == 0) {return std::nullopt;}return a / b;
}
int main() {auto result = divide(10, 2);if (result) {std::cout << "Result: " << *result << std::endl;} else {std::cout << "Division by zero" << std::endl;}return 0;
}
  • std::variant:可以存储多种不同类型的值,但同一时间只能存储其中一种类型。
#include <variant>
#include <iostream>
#include <string>
int main() {std::variant<int, std::string> var = 10;std::cout << std::get<int>(var) << std::endl;var = "Hello";std::cout << std::get<std::string>(var) << std::endl;return 0;
}
  • std::any:可以存储任意类型的值。
#include <any>
#include <iostream>
#include <string>
int main() {std::any value = 10;std::cout << std::any_cast<int>(value) << std::endl;value = std::string("Hello");std::cout << std::any_cast<std::string>(value) << std::endl;return 0;
}
算法
  • std::clamp:用于将一个值限制在指定的范围内。
#include <algorithm>
#include <iostream>
int main() {int value = 15;int min = 10;int max = 20;int result = std::clamp(value, min, max);std::cout << "Clamped value: " << result << std::endl;return 0;
}

C++20 中的 STL 新增内容

容器
  • std::span:表示一个连续对象序列的视图,不拥有这些对象,常用于函数参数传递,避免不必要的拷贝。
#include <span>
#include <iostream>
#include <vector>
void print(std::span<int> sp) {for (int num : sp) {std::cout << num << " ";}std::cout << std::endl;
}
int main() {std::vector<int> vec = {1, 2, 3, 4, 5};print(vec);return 0;
}
算法
  • 范围库(Ranges Library):提供了一种更简洁、更通用的方式来处理序列数据,结合了算法和迭代器的功能。
#include <iostream>
#include <vector>
#include <ranges>
int main() {std::vector<int> vec = {1, 2, 3, 4, 5};auto even_numbers = vec | std::views::filter([](int i) { return i % 2 == 0; });for (int num : even_numbers) {std::cout << num << " ";}return 0;
}

这些新增内容使得 STL 更加完善和强大,为 C++ 开发者提供了更多高效、便捷的工具。

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

相关文章:

  • 做网站最好的公司官方百度
  • 公司域名网站seo自学
  • 宁夏网站建设哪个好店铺推广软文500字
  • 影院网站建设semantic
  • 磁县邯郸网站建设seo搜索引擎优化知乎
  • 网络营销比赛 营销型网站策划企业网站推广渠道
  • 有没有网站做lol赌博的seo销售话术开场白
  • 专门做灯具海报的网站官方百度平台
  • 社交网站开发注意事项德州seo优化
  • 北京b2c网站建设seo数据优化
  • 电脑制作网站教程电脑清理软件十大排名
  • 本科电子商务专业就业方向杭州seo建站
  • 潍坊做网站的企业销售推广
  • 埃及网站后缀成都网络推广
  • 网站免费正能量软件推荐站长之家网站查询
  • 邢台市建设局安全监督管理网站北京seo网站管理
  • 做网站的主要作用的搜索引擎优化
  • 视频网站制作费用网站平台推广
  • 网站后台如何修改新闻发布时间荆门刚刚发布的
  • 网站维护怎么做网站友情链接连接
  • 营销类网站设计 要点百度官网下载安装
  • 网站开发维护承担的法律责任搜索指数
  • 辽宁奔之流建设工程有限公司网站房地产营销策略有哪些
  • 旅游网站怎么设计推广软文是什么意思
  • 临沂网站建设电话seo是搜索引擎营销
  • wordpress默认 页面首页关键词排名优化
  • 自己做网站需要服务器国家职业技能培训平台
  • 交易平台网站程序宁波网站制作优化服务公司
  • 开发网站实时监控个人网站开发网
  • 福田附近网站开发公司企业网站优化关键词