文档章节

std学习

y
 yizhangxyz
发布于 2017/04/07 09:49
字数 392
阅读 6
收藏 0
点赞 0
评论 0

1.std::recursive_mutex 与 std::mutex ,recursive_mutex允许同一个线程对互斥量多次上锁(即递归上锁),来获得对互斥量对象的多层所有权,std::recursive_mutex 释放互斥量时需要调用与该锁层次深度相同次数的 unlock(),可理解为 lock() 次数和 unlock() 次数相同,除此之外,std::recursive_mutex 的特性和 std::mutex 大致相同

2.std::stringstream:简化类型转换
std::stringstream m_sstream; 
std::string result; 
int i=1000; 
m_sstream<<i; //int写入流
m_sstream>>result; //流写到字符串
std::cout<<result<<"\n"; 
 

3.uint64_t total_award = std::accumulate(ai.begin(), ai.end(), 0, [](auto& l, auto& r){
            return l + r.second;//l是上一次调用的sum
        });//求区间内的和。

4.std::find。参数为一对迭代器,和一个给定的值。返回在迭代器之间等于第一个给定值的迭代器。                  if (std::find(vec.begin(), vec.end(), value) != vec.end()) {}

5. std::find_if(
    vec.begin(),
    vec.end(),
    [id](auto& item) {
        return item.id == id;
    })//在迭代器区间按照指定function查找

6.std::swap。交换2个容器。

7.std::map count函数,用于判断key是否存在
std::map<string,int> table;
string key = "A";
if(table.count(key))//如果键存在返回1,否则返回0
  cout<<table[key]<<endl;
}

8.std::thread。在创建thread的时候就会执行。

void test1(){ 
    cout << "hello test 1"<<endl; 
    while (true)
    {
    }
}
std::thread t1(test1);//创建就会执行
t1.join();//等待t1执行完毕,否则阻塞在这里

9.std::stoll C++11 将字符串转化成带符号整数

10.std:vector push_back()自动会调用ClassA(ClassA&& other)(如果有的话)来构造,emplace_back可以隐式转化,即自动调用对应的构造函数。

© 著作权归作者所有

共有 人打赏支持
y
粉丝 1
博文 57
码字总数 42366
作品 0
成都
你们以为我在学C++?其实我在学 Python

我在用 C++ 来学习 Python. 不信?来跟着我学? 字面量 Python 早在 2.6 版本中就支持将二进制作为字面量了[1], 最近 C++14 逐步成熟,刚刚支持这么干[2]: static const int primes = 0b1010...

铁扇公主1 ⋅ 2017/04/28 ⋅ 0

c++学习:pair的使用

原文链接来自csdn的一篇博客, Pair类型概述, Pair是一种类型模板,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下 std::pair<int,std::string> tempPair; 上面的定义表示tem...

召唤攻城狮 ⋅ 2014/05/08 ⋅ 0

boost库之时间和日期

最近在学习boost库,想来对C++了解的人,应该都不陌生吧,以前没怎么注意过,也从来把注意力放到数据结构和算法这一块,结果,一上班就被虐的的体无完肤,从而决心把boost过一遍,趁着之前还...

风雅轩 ⋅ 2017/10/28 ⋅ 0

为std::tuple增加格式化/序列化能力

转载请注明出处。谢谢 C++11中有很多激动人心的特性,但是相应的使得C++更加复杂。。。 新标准还修改了原有标准库,并增加了很多内容。 在学习新标准的过程中动手写了个 为std::tuple增加格式...

江浸月 ⋅ 2013/02/18 ⋅ 0

C++ Primer读书笔记-ch01

Chapter 1. Getting Started 1.1 Writing a simple C++ Program 对于main函数而言,return 0表示一切正常,非0值表示有情况,具体含义由系统定义。 参考文档 gcc编译程序,经历如下过程: 预...

西昆仑 ⋅ 2016/03/29 ⋅ 0

明白了一些关于命名空间(using space)的小东西

之前我一直纠结 #include <iostream.h> cin>> cout<< include<iostream> using spacename std; cin>> cout<< include<iostream> std::cin<< std::cout>> 这三者的区别和利弊。 第一个,C++标......

李老三 ⋅ 2016/09/14 ⋅ 0

数据库编程入门培训(二)

本文为数据库编程入门培训的第二讲,主要讲述一下数据库编程具体怎么实现。示例代码在本文后面的附件中可以下载。 如上篇文章所描述的那样,由于Microsoft Access数据库比较直观,适合初学者...

乐搏学院 ⋅ 2016/12/05 ⋅ 0

C++11 并发编程教程 - Part 3 : 锁的进阶与条件变量

上一篇文章中我们学习了如何使用互斥量来解决一些线程同步问题。这一讲我们将进一步讨论互斥量的话题,并向大家介绍 C++11 并发库中的另一种同步机制 —— 条件变量。 递归锁 考虑下面这个简...

天下杰论 ⋅ 2013/12/29 ⋅ 0

qDebug 学习小结

在qtcentre中看到有网友问这样一个问题: Why this doesn't work?qDebug() << "Test" << std::endl; 第一反应:这两个东西本来就不能这样搭配使用啊。 第二反应:额,如何解释这个问题呢?还...

晨曦之光 ⋅ 2012/05/08 ⋅ 1

Modern C++ 学习笔记 (一)

一些type_traits 的实现 std::is_same,用以判断两个类型是否一致 std::is_integer,直接枚举数值类型即可,不过究竟有多少数值类型,只有编译器自己才知道,所以一般这个元函数自己实现很容...

wierton ⋅ 2017/12/14 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

BS与CS的联系与区别【简】

C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、InFORMix或 SQL Server。客户端需要安装专用的客户端软件。 B/S是Brower/...

anlve ⋅ 37分钟前 ⋅ 0

发生了什么?Linus 又发怒了?

在一个 Linux 内核 4.18-rc1 的 Pull Request 中,开发者 Andy Shevchenko 表示其在对设备属性框架进行更新时,移除了 union 别名,这引发了 Linus 的暴怒。 这一次 Linus Torvalds 发怒的原...

问题终结者 ⋅ 57分钟前 ⋅ 0

在树莓派上搭建一个maven仓库

在树莓派上搭建一个maven仓库 20180618 lambo init 项目说明 家里有台树莓派性能太慢。想搭建一个maven私服, 使用nexus或者 jfrog-artifactory 运行的够呛。怎么办呢,手写一个吧.所在这个...

林小宝 ⋅ 今天 ⋅ 0

Spring发展历程总结

转自与 https://www.cnblogs.com/RunForLove/p/4641672.html 目前很多公司的架构,从Struts2迁移到了SpringMVC。你有想过为什么不使用Servlet+JSP来构建Java web项目,而是采用SpringMVC呢?...

onedotdot ⋅ 今天 ⋅ 0

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 今天 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 今天 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 今天 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 今天 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部