
c++ 基础
学之之博未若知之之要知之之要未若行之之实
获得黑龙江省数学竞赛省二等奖
获得黑龙江省光电组省一等奖金奖
参与ACM哈理工夏季训练营
展开
-
2021-09-02 inline函数和一般的函数有什么不同
inline函数和一般的函数有什么不同 比如:1 int g(int x) 2 { 3 return x + x; 4 } 5 6 int f() 7 { 8 return g(); 9 } 这样f会调用g,然后g返回x + x给f,然后f继续把那个值返回给调用者。 如果g是inline的话。f会被直接编译成。 1 int f() 2 { 3 return x + x; 4 } 相当于把g执行的操作直接融合到f里。这样减少了调用g消耗的时原创 2021-09-02 11:55:47 · 398 阅读 · 0 评论 -
lower_bound( )和upper_bound( )的常见用法
lower_bound() 和 upper_bound 二分查找有序数列内数据(数据可以是重复出现,所以出现上下边界)lower_bound( )和upper_bound( )都是利用二分查找的方法在一个排好序的数组中进行查找的。在从小到大的排序数组中,lower_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。.原创 2021-04-22 17:13:55 · 298 阅读 · 0 评论 -
C++11多线程中的detach()、join()、joinable()
一.传统多线程编写:一般来说,我们在主线程中开辟出一些子线程来完成我们的任务,正常情况下,需要在主线程的最后调用join(),用于阻塞主线程,避免主线程先于其他子线程执行完毕,退出,然后导致整个进程的异常.join():阻塞主线程,主线程等待其他子线程执行完毕,一起退出.二.非传统多线程编写: 引入detach()有人说,我们创建多个线程完成一些任务,不过需要主线程最后等待所有的子线程完毕才能退出,这样不好,主线程不自由.所以,detach()应运而生,希望主线程可以正常的退出, 子线程被原创 2020-12-23 17:49:37 · 848 阅读 · 0 评论 -
C++ 互斥量std::mutex简单介绍
std::mutex互斥量是一个可以处于两态之一的变量:解锁和加锁。这样,只需要一个二进制位表示它,不过实际上,常常使用一个整型量,0表示解锁,而其他所有的值则表示加锁。互斥量使用两个过程。当一个线程(或进程)需要访问临界资源的临界区时,它调用mutex_lock。如果该互斥量当前是解锁的(即临界区可用),此调用成功,调用线程可以自由进入该临界区。#include <iostream>#include <vector>#include <thread>.原创 2020-12-23 17:19:54 · 7518 阅读 · 0 评论