C++11
分别介绍C++11新标准,并附上例子,gcc4.9编译通过
zxgailixien
这个作者很懒,什么都没留下…
展开
-
C++ 数据类型长度与范围-GCC 4.9编译通过
#include<iostream>using namespace std;int main(){ cout<<"char:"<<sizeof(char)<<endl; cout<<"bool:"<<sizeof(bool)<<endl; cout<<"short:"<<sizeof(short)<<endl; cout<<"int:"<&l原创 2020-09-18 13:29:56 · 145 阅读 · 0 评论 -
C++ 格式化输入-GCC 4.9编译通过
#include <iostream>#include<cstdio> using namespace std;int main() { char s[100]={0}; sprintf(s, "%d\n", 123); //十进制输出产生"123" cout<<s; sprintf(s, "%4d%4d\n", 123, 4567); //指定宽度不足的左边补空格,产生:" 1234567" cout<<s; sprintf(s,原创 2020-09-16 09:10:12 · 79 阅读 · 0 评论 -
C++ 10进制转换-GCC 4.9编译通过
文章目录10进制转换2、8、16进制输出8、16进制字符串转换成长10进制10进制转换2、8、16进制输出#include <bitset> #include<iostream>using namespace std; int main() { cout << "35的8进制:" << std::oct << 35<< endl; cout << "35的10进制" <<原创 2020-09-16 08:41:28 · 179 阅读 · 0 评论 -
C++ string与其他数据类型转换-GCC 4.9编译通过
目录其他类型转stringstring转其他类型其他类型转stringstd::string to_string(int value);std::string to_string(long int value);std::string to_string(long long int value);std::string to_string(unsigned int value);std::string to_string(unsigned long long int value);std::s原创 2020-09-12 18:07:28 · 244 阅读 · 0 评论 -
C++11 std::future和(std::async、std::packaged_task、std::promise)-GCC 4.9编译通过
std::future介绍它是C++11中提供异步创建多线程的工具。但是我们想要从线程中返回异步任务结果,一般需要依靠全局变量;从安全角度看,有些不妥;为此C++11提供了std::future类模板,future对象提供访问异步操作结果的机制,很轻松解决从异步任务中返回结果。在C++标准库中,有两种“期望”,使用两种类型模板实现,唯一期望(unique futures,std::future<>) std::future的实例只能与一个指定事件相关联。共享期望(shared futur原创 2020-09-04 13:10:30 · 167 阅读 · 0 评论 -
C++11 std::bind(延迟计算)-GCC 4.9编译通过
bind的思想实际上是一种延迟计算的思想,将可调用对象保存起来,然后在需要的时候再调用。std::bind可以说是一个可调用实体的adapter。它可以预先把指定可调用实体的某些参数绑定到已有的变量,产生一个新的可调用实体,这种机制在回调函数的使用过程中颇为有用。bind的语法格式:auto newCallable = bind(callable, arg_list);一个简单的例子:#include <iostream>#include <functional>us原创 2020-09-03 07:17:52 · 293 阅读 · 0 评论 -
C++11 std::function(5种可调用对象)-GCC 4.9编译通过
类模版std::function是一种通用、多态的函数封装,形成一个新的可调用的std::function对象。std::function的实例可以对任何可以调用对象进行存储、复制和调用操作。std::function对象是对C++中现有的可调用实体的一种类型安全的包裹(我们知道像函数指针这类可调用实体,是类型不安全的)。 关于可调用对象的概念:对于一个对象或表达式,如果可以对其使用调用运算符,则称该对象或表达式为可调用对象。可调用对象包括:(1)函数。(2)函数指针。(3)lambda 表达式。原创 2020-09-02 22:31:04 · 249 阅读 · 0 评论 -
C++11 Lambda函数(匿名函数)-GCC 4.9编译通过
添加链接描述原创 2020-09-02 21:44:53 · 254 阅读 · 0 评论 -
C++11 std::this_thread::yield-GCC 4.9编译通过
其作用是当前线程“放弃”执行,让操作系统调度另一线程继续执行。比如说你的线程需要等待某个操作完成,如果你直接用一个循环不断判断这个操作是否完成就会使得这个线程占满CPU时间,这会造成资源浪费。这时候你可以判断一次操作是否完成,如果没有完成就调用yield交出时间片,过一会儿再来判断是否完成,这样这个线程占用CPU时间会大大减少。#include <iostream> #include <chrono> #include <thread> #include &原创 2020-09-02 19:49:24 · 190 阅读 · 0 评论 -
C++11 std::thread-成员函数-GCC 4.9编译通过
1.get_id()获取线程ID,返回类型std::thread::id对象。2.join()创建线程执行线程函数,调用该函数会阻塞当前线程,直到线程执行完join才返回。3.detach()detach调用之后,目标线程就成为了守护线程,驻留后台运行,与之关联的std::thread对象失去对目标线程的关联,无法再通过std::thread对象取得该线程的控制权4.swap()交换两个线程对象thread t1(threadFun1); thread t2(threadFun2);原创 2020-09-01 08:08:43 · 635 阅读 · 0 评论 -
C++11 std::thread-使用lambda表达式-GCC 4.9编译通过
#include <thread>#include <iostream>int main(){ std::thread thread1([](){ std::cout<<"lambda thread called." <<std::endl; }); thread1.join(); // 等待线程结束 return 0;}Output:lambda thread called...原创 2020-09-01 07:40:51 · 3043 阅读 · 0 评论 -
C++11 std::thread-使用std::bind-GCC 4.9编译通过
#include <thread>#include <iostream>struct Task{ void doSomething(int task_type) { std::cout<<"task_type:"<<task_type<<std::endl; }};int main(){ Task task1; std::thread thread1(std::bind(&原创 2020-08-31 22:09:52 · 495 阅读 · 0 评论 -
C++11 std::thread-使用类成员函数-GCC 4.9编译通过
C++11引入了thread类,大大降低了多线程使用的复杂度,原先使用多线程只能用系统的API,无法解决跨平台问题,一套代码平台移植,对应多线程代码也必须要修改。现在在C++11中只需使用语言层面的thread可以解决这个问题。#include <thread>#include <iostream>struct Task{ void doSomething(int task_type) { std::cout<<"task_typ原创 2020-08-31 22:01:15 · 426 阅读 · 0 评论 -
C++11 std::thread-直接使用全局函数-GCC 4.9编译通过
@TOCC++之std欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式原创 2020-08-09 20:56:59 · 486 阅读 · 0 评论