c++11新特性

图片[1]-c++11新特性-不念博客
  1. 自动类型推导(Auto):允许编译器推导变量的类型,使代码更加简洁。
auto x = 5; // x的类型将被推导为int
  1. 范围-based for 循环:简化了对容器元素的遍历。
std::vector<int> numbers = {1, 2, 3, 4, 5};
for (const auto& num : numbers) {
    // 使用num
}
  1. 智能指针:引入了std::shared_ptr和std::unique_ptr等智能指针,用于管理动态分配的内存,帮助防止内存泄漏。
std::shared_ptr<int> sharedPtr = std::make_shared<int>(42);
  1. Lambda 表达式:允许在函数内部定义匿名函数,提高代码可读性和灵活性。
auto add = [](int a, int b) { return a + b; };
  1. nullptr:引入了空指针常量nullptr,用于替代传统的空指针NULL。
int* ptr = nullptr;
  1. 强制类型转换(Type Casting):引入了static_cast、dynamic_cast、const_cast、reinterpret_cast等更安全和灵活的类型转换操作符。
double x = 3.14;
int y = static_cast<int>(x);
  1. 右值引用和移动语义:支持通过右值引用实现移动语义,提高了对临时对象的处理效率。
std::vector<int> getVector() {
    // 返回一个临时vector
    return std::vector<int>{1, 2, 3};
}

std::vector<int> numbers = getVector(); // 使用移动语义
  1. 新的容器和算法:引入了新的容器,如std::unordered_map、std::unordered_set,以及一些新的算法。
std::unordered_map<int, std::string> myMap = {{1, "one"}, {2, "two"}};
  1. 线程支持(std::thread):提供了原生的多线程支持,使得并发编程更加方便。
#include <thread>

void myFunction() {
    // 线程执行的代码
}

int main() {
    std::thread t(myFunction);
    t.join(); // 等待线程结束
    return 0;
}
© 版权声明
THE END
喜欢就支持一下吧
点赞140赞赏 分享
评论 抢沙发
头像
欢迎光临不念博客,留下您的想法和建议,祝您有愉快的一天~
提交
头像

昵称

取消
昵称

    暂无评论内容