c++
文章平均质量分 57
singing1001
码农
展开
-
float转int的各种方式
round to even原创 2021-06-10 16:15:28 · 1488 阅读 · 0 评论 -
条件变量std::condition_variable
https://en.cppreference.com/w/cpp/thread/condition_variable头文件<condition_variable>声明class condition_variable;(since C++11)描述condition_variable类是一个同步原语,可用于阻塞一个线程或同时阻塞多个线程,直到另一个线程修改共享变量(条件)并通知condition_variable。尝试修改共享变量的线程必须:获取一个std ::转载 2021-03-19 16:59:48 · 892 阅读 · 0 评论 -
std::mem_fn
std::mem_fnC++Utilities libraryFunction objects Defined in header<functional> template<classM,classT> /*unspecified*/mem_fn(M T::*pm)noexcept; (since C++11) (until C++20) ...转载 2020-08-31 18:00:29 · 198 阅读 · 0 评论 -
c语言预处理
https://www.tutorialspoint.com/cprogramming/c_preprocessors.htmTheC Preprocessoris not a part of the compiler, but is a separate step in the compilation process. In simple terms, a C Preprocessor is just a text substitution tool and it instructs the co..转载 2020-07-09 14:59:53 · 269 阅读 · 0 评论 -
无序关联容器之unordered_multiset
https://en.cppreference.com/w/cpp/container/unordered_multiset头文件<unordered_set>声明(1) (since C++11)template< class Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class Allocator = std:...转载 2020-06-30 17:40:50 · 201 阅读 · 0 评论 -
无序关联容器之unordered_set
https://en.cppreference.com/w/cpp/container/unordered_set头文件<unordered_set>声明(1) (since C++11)template< class Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class Allocator = std::allo...转载 2020-06-30 11:43:57 · 314 阅读 · 0 评论 -
关联容器之multimap
https://en.cppreference.com/w/cpp/container/multimap头文件<map>声明(1)template< class Key, class T, class Compare = std::less<Key>, class Allocator = std::allocator<std::pair<const Key, T> >> class multima...转载 2020-06-29 16:53:10 · 207 阅读 · 0 评论 -
关联容器之multiset
https://en.cppreference.com/w/cpp/container/multiset头文件<set>声明(1) template< class Key, class Compare = std::less<Key>, class Allocator = std::allocator<Key>> class multiset;(2) (since C++17)namespace pm...转载 2020-06-29 16:09:39 · 159 阅读 · 0 评论 -
关联容器之map
头文件<map>声明(1) template< class Key, class T, class Compare = std::less<Key>, class Allocator = std::allocator<std::pair<const Key, T> >> class map;(2) (since C++17)namespace pmr { template &...转载 2020-06-29 15:38:48 · 228 阅读 · 1 评论 -
关联容器之set
https://en.cppreference.com/w/cpp/container/set头文件<set>声明(1)template< class Key, class Compare = std::less<Key>, class Allocator = std::allocator<Key>> class set;(2) (since C++17)namespace pmr { temp...转载 2020-06-29 14:01:35 · 178 阅读 · 0 评论 -
序列容器之list
https://en.cppreference.com/w/cpp/container头文件<list>声明(1)template< class T, class Allocator = std::allocator<T>> class list;(2) (since C++17)namespace pmr { template <class T> using list = std::list...转载 2020-06-28 16:13:31 · 164 阅读 · 0 评论 -
序列型容器之forward_list---单向列表
https://en.cppreference.com/w/cpp/container头文件<forward_list>声明1)(since C++11)template< class T, class Allocator = std::allocator<T>> class forward_list;2)(since C++17)namespace pmr { template <class T> ...转载 2020-06-28 11:36:54 · 279 阅读 · 0 评论 -
序列型容器之dequeue
https://en.cppreference.com/w/cpp/container头文件Defined in header <deque>声明(1) template< class T, class Allocator = std::allocator<T>> class deque;(2) (since C++17)namespace pmr { template <class T> usin...转载 2020-06-24 17:59:32 · 681 阅读 · 1 评论 -
序列型容器之vector
https://en.cppreference.com/w/cpp/container转载 2020-06-23 21:03:22 · 343 阅读 · 0 评论 -
序列型容器之array
https://en.cppreference.com/w/cpp/container转载 2020-06-23 18:44:22 · 133 阅读 · 0 评论 -
析构
https://docs.microsoft.com/en-us/cpp/cpp/destructors-cpp?view=vs-2019概述析构操作是一个对象的成员函数,在该对象离开作用域或通过delete操作明确的销毁时,被自动调用。析构操作与类同名,前面加个波浪符 (~)。例如,String类的析构操作的声明是:~String()。当没有定义析构操作时,编译器会自动生成一个默认的;很多情况下,它是足够的。当类中占用了需要释放的系统资源或者它们拥有的指针占用着内存。看看如下的一个Strin转载 2020-06-18 19:19:26 · 2433 阅读 · 0 评论 -
const_cast conversion
描述在不同cv-修饰符的类型之间转换。格式const_cast < new_type > ( expression ) 返回new_type 类型对应的数值。解释只有如下的转换可以通过const_cast完成。特别是,只有“const_cast”可以用于移除 constness或volatility。两个可能有多级的指针指向同一个数据类型,它们之间...转载 2020-04-08 16:26:09 · 145 阅读 · 0 评论 -
dynamic_cast conversion
安全的转换指针和引用到父类,子类,并且死沿着一侧的继承关系。格式dynamic_cast < new-type > ( expression )其中,new-type---指向一个完备的class类型的指针,或一个完备的class类型的引用,或者是指向void的指针。expression---如果新的类型是一个引用,则是一个完备的class类型的lvalue或glv...转载 2019-11-11 22:37:30 · 149 阅读 · 0 评论 -
static_cast
static_cast conversion使用了隐式转换和用户定义的转换的结合的方式,进行类型间转换。Syntaxstatic_cast < new_type > ( expression )返回类型为“new_type”的值。Explanation只有如下的转换可以使用static_cast来完成,除非这些转换破坏了“constness”或“volatili...转载 2019-11-06 20:14:29 · 603 阅读 · 0 评论 -
lvalue,prvalue,xvalue,glvalue和rvalue详解(from cppreference)
每一个C++表达式(一个操作符和它的操作数,一个字面值,一个变量名等等)都代表着两个独立属性:类型+属性分类。在现代C++中 glvalue(泛左值) = lvalue (传统意义上的左值)+ xvalue(消亡值,通过右值引用产生) rvalue (传统意义上的右值) = prvalue(纯右值) + xvalue...转载 2019-11-06 19:57:16 · 717 阅读 · 0 评论 -
std::condition_variable
Defined in header<condition_variable> classcondition_variable; (since C++11) Thecondition_variableclass is a synchronization primitive tha...转载 2019-10-15 18:45:56 · 231 阅读 · 0 评论 -
cv (const and volatile) type qualifiers
https://en.cppreference.com/w/cpp/language/cvAppear in any type specifier, includingdecl-specifier-seqofdeclaration grammar, to specify constness or volatility of the object being declared or of ...转载 2019-10-15 18:42:13 · 364 阅读 · 0 评论 -
json文件转成img
#include <stdio.h>#include <iostream>#include <fstream>#include <json/json.h>#include <opencv2/highgui.hpp>#include "opencv2/imgproc.hpp"using namespace std;in...原创 2019-04-02 21:45:58 · 2776 阅读 · 0 评论 -
JSON 数据格式
原文地址:http://www.cnblogs.com/SkySoot/archive/2012/04/17/2453010.htmlJSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。基础结构JSON建构于两种结构...转载 2019-04-02 09:32:32 · 167 阅读 · 0 评论 -
odd_ones,我用了15个操作,要求12个操作,我尽力了。请大侠指教!
int odd_ones(unsigned int v){ unsigned int v1 = v>>16; unsigned int v2 = v&0xffff; unsigned int v3 = v2 ^ v1; // 16 unsigned int v4 = v3>>8; unsigned int v5 = v3&...原创 2019-03-08 09:48:07 · 679 阅读 · 0 评论 -
c++之thread,先起个头,以后补充
下面是网上的解释:ThreadClass to represent individual threads of execution.A thread of execution is a sequence of instructions that can be executed concurrently with other such sequences in multithreading...原创 2019-03-10 15:12:46 · 280 阅读 · 0 评论 -
dlopen, dlsym,dlclose
#include <iostream>#include <stdio.h>void addVector(int *src, int *dst, int *dstCnt, int srcCnt){ int *pDstTmp = dst + *dstCnt; for(int i = 0; i < srcCnt; i++) { ...原创 2019-01-21 18:03:32 · 293 阅读 · 0 评论 -
C++ RTTI
原文地址:http://www.cnblogs.com/hongzg1982/articles/2097339.htmlRTTI(Run-Time Type Identification,通过运行时类型识别)程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型。RTTI介绍 RTTI提供了以下两个非常有用的操作符: (1)typeid操作符,返回指针和引用所指...转载 2019-01-08 17:11:54 · 138 阅读 · 0 评论 -
C++析构函数为什么要为虚函数
原文地址:http://www.cnblogs.com/lixiaohui-ambition/archive/2012/07/13/2589716.html C++析构函数为什么要为虚函数注:本文内容来源于zhice163博文,感谢作者的整理。1.为什么基类的析构函数是虚函数? 在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生。 下面转自网...转载 2019-01-08 17:01:21 · 1368 阅读 · 0 评论 -
lambda表达式的官方描述
创建一个闭包:一个匿名函数对象,它能够捕获域内的变量。格式:[ captures ] <tparams>(optional)(c++20) ( params ) specifiers exception attr -> ret requires(optional)(c++20) { body } (1)[ captures ] ( params ) -> ret...翻译 2019-04-21 10:09:42 · 501 阅读 · 0 评论 -
std::enable_shared_from_this
std::enable_shared_from_this 使能shared_from_this.它是在派生类中使能成员函数shared_from_this的基类。该类提供了允许派生类的对象可以创建shared_ptr指向自己的实例并可以与已经存在的shared_ptr对象共享拥有权限的功能。注意:只是简单返回共享指针 shared_ptr<T>(this)是有问题的,因...翻译 2019-04-21 11:37:06 · 238 阅读 · 0 评论 -
std::function
std::function 头文件:<functional>函数声明:template< class R, class... Args >class function<R(Args...)>;描述:类模板std::function是一个通用目的的多态的函数封装。std::function可以存储、拷贝和唤醒任何可调用的目标----函数、lam...翻译 2019-04-14 09:19:53 · 894 阅读 · 0 评论 -
vector初始化
#include <stdio.h>#include <iostream>#include <vector>using namespace std;struct B{int ID;B(int b){ ID = b; printf("construct B over\n");};};class A{...原创 2019-04-23 09:56:04 · 127 阅读 · 0 评论 -
linux 获取进行的vmrss
int get_process_vm_rss(void){FILE *fp = NULL;char buf[256] = {};int vm_rss = 0;fp = fopen("/proc/self/status", "r");if(fp){while(fgets(buf, sizeof(buf) - 1, fp)){if(strstr(buf, "VmRSS:")){...原创 2019-04-23 11:19:08 · 1895 阅读 · 0 评论 -
unique_ptr
unique_ptr不共享它的指针。它无法复制到其他unique_ptr,无法通过值传递到函数,也无法用于需要副本的任何标准模板库 (STL) 算法。只能移动unique_ptr。这意味着,内存资源所有权将转移到另一unique_ptr,并且原始unique_ptr不再拥有此资源。我们建议你将对象限制为由一个所有者所有,因为多个所有权会使程序逻辑变得复杂。因此,当需要智能指针用于纯 C+...转载 2019-03-04 11:42:04 · 144 阅读 · 0 评论 -
aligned_storage 与 __attribute__ ((aligned ()))
#include <stdio.h>#include <memory.h>#include <iostream>#include <type_traits>#include <string>template<class T, std::size_t N>class static_vector{ /...原创 2019-05-27 19:09:36 · 392 阅读 · 0 评论 -
C++智能指针 shared_ptr,unique_ptr和weak_ptr
C++智能指针 shared_ptr,unique_ptr和weak_ptr牛犇犇https://zhuanlan.zhihu.com/p/296289381.智能指针为什么存在?因为C++没有自动回收内存的机制,因此每一次new出来的动态内存必须手动delete回去。而智能指针可以解决这个问题。2.智能指针的大致描述是什么?智能指针:自动负责释放所指向的对象,实际上它...转载 2019-06-11 15:48:54 · 261 阅读 · 0 评论 -
转,C++总结:C++中的const和constexpr
转自:https://www.cnblogs.com/fuzhe1989/p/3554345.htmlC++中的const可用于修饰变量、函数,且在不同的地方有着不同的含义,现总结如下。const的语义C++中的const的目的是通过编译器来保证对象的常量性,强制编译器将所有可能违背const对象的常量性的操作都视为error。对象的常量性可以分为两种:物理常量性(即每个bit都不...转载 2019-09-18 20:52:20 · 129 阅读 · 0 评论 -
c++需要明确的问题---先写上,后续一个个完善
C++ const 使用场景;unique_ptr虚函数与运行时加载的实现原理。share_ptr实现原理;使用&作为返回值,需要注意??右值引用vector的内存管理的机制原理。overwrite与overload分别是???...原创 2019-01-08 15:45:46 · 181 阅读 · 0 评论