std学习
std学习
yizhangxyz 发表于8个月前
std学习
  • 发表于 8个月前
  • 阅读 3
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

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可以隐式转化,即自动调用对应的构造函数。

共有 人打赏支持
粉丝 2
博文 57
码字总数 42366
×
yizhangxyz
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: