摘要:
unique_ptr实现了独占式拥有概念,它可以保证一个对象和其相应的资源同一时间只被一个pointer拥有。一旦拥有者被销毁或变成empty,或开始拥有另一个对象,先前拥有的那个对象就会被销毁,其任何相应的资源亦会被释放。 1.使用unique_ptr #include <iostream> #i 阅读全文
摘要:
C++标准库提供了两大类型的smart pointer 一、class shared_ptr。共享式拥有。多个shared_ptr可以指向同一个对象,该对象和起相关资源会在最后一个指针被销毁时释放。 二、class unique_ptr。独占式拥有。同一时间只有一个smart pointer可以指向 阅读全文
摘要:
1.Pair 1.1 Pair定义: namespace std { template<class _T1, class _T2> struct pair { _T1 first; _T2 second; } } 两个成员都是public。 实现一个泛型类函数模板,将一个pair写入一个stream 阅读全文
摘要:
decltype可让编译器找出表达式的类型。 map<string,float> coll; decltype(coll)::value_type elem; 新的函数声明语法 template<typename T1, typename T2> auto add(T1 x, T2 y) -> de 阅读全文
摘要:
语法如下: //直接调用 []{ cout<<"hello lambda1"<<endl; }(); //传递给对象 auto l=[]{ cout<<"hello lambda2"<<endl; }; l(); Lambda可以有参数 auto l2 = [](const string& s){ 阅读全文
摘要:
自C++11起,template可拥有那种“可以接收个数不定之template实参”的参数。此能力称variaddic template。 #include <iostream>#include <bitset> void print(){ } template<typename T,typenam 阅读全文
摘要:
语法如下: for(decl:coll){ statement } 举例: template <typename T> void printElements(const T& coll){ for(const auto& elem:coll){ cout<<elem<<endl; } } int a 阅读全文
摘要:
自C++11起,constexpr可用来让表达式核定于编译期,例如 constexpr int square(int x){ return x*x; } float a[square(9)];cout<<"size="<<sizeof(a)/sizeof(a[0])<<endl; 阅读全文
摘要:
1. QSplitter 分割窗口 代码: QSplitter *splitterMain=new QSplitter(Qt::Horizontal,0); QTextEdit *textLeft=new QTextEdit(QObject::tr("Left Widget"),splitterMa 阅读全文
摘要:
QVariant类类似于C++的联合(union),它不仅能保存很多Qt类型的值,包括QColor,QBrush,QFont,QPen,QRect,QStrin QVariant v(709); qDebug()<<v.toInt(); QVariant w("Hello, world"); qDe 阅读全文