什么网站做h5没有广告,seo 深圳,企业网站推广短平快,国外的营销网站有哪些1.2.1 boost安装 推荐一键式安装 下载#xff1a; 官网下载地址 #xff08;1#xff09;安装boost#xff1a;解压后在Boost根目录下#xff0c;执行./bootstrap.sh完毕后执行./b2 install#xff0c;可以查看“/usr/local/include以及”/usr/local/lib中是否有相…1.2.1 boost安装 推荐一键式安装 下载 官网下载地址 1安装boost解压后在Boost根目录下执行./bootstrap.sh完毕后执行./b2 install可以查看“/usr/local/include以及”/usr/local/lib中是否有相应的头文件和库文件来验证是否安装成功 2安装b2解压后在Boost根目录下执行cd tools/build/执行./bootstrap.sh完毕后执行./b2 installb2会被默认安装到/usr/local/bin目录下 3常用的b2命令 第二章主要讲的是timer库个人认为不是很好用 内存管理 3.2 scoped_ptr跟unique_ptr类似但是其对于所有权更加严格且智能在本作用域里使用不能被转让。 scoped_ptrstd::stringsp(new string(“test”));// 构造一个scoped_ptr对象 assert(sp);//使用显式bool转型 assert(ap!nullptr);//空指针比较操作 std::coutspstd::endl; //operatyor取字符串的内容 std::coutsize()std::endl;//operatyor-取字符串的长度 3.3 shared_ptr 1类摘要 2构造函数 shared_ptr() shared_ptr(Yp); shared_ptr(shared_ptr constr) shared_ptr(Yp,D d) 3shared_ptr提供了一个工厂函数make_shared()消除显示的new调用 auto sp make_sharedstd::string(“make_shared”);//创建string的共享指针 auto spv make_sharedvector(10,2);//创建vector的共享指针 assert(spv-size()10); typedef vectorshared_ptrvs;// 一个持有shared_ptr的标准容器类型 vs v(10);//声明一个拥有10个元素的容器元素被初始化为空指针 4应用于桥接模式和工厂模式 工厂模式
#pragma once
#include iostream
#include boost/smart_ptr.hpp
// 定义抽象工厂类
class Abstract {
public:virtual void f() 0;virtual void g() 0;
protected:virtual ~Abstract() default;
};class Impl :public Abstract
{
public:Impl() default;virtual ~Impl() default;
public:virtual void f() {std::cout class impl f std::endl;}virtual void g() {std::cout class impl g std::endl;}};boost::shared_ptrAbstractcreate() {return boost::make_sharedImpl();
}int main()
{auto p create();p-f();p-g();return 0;
}
5定制删除器 shared_ptr(Yp, D d);//第一个参数是被管理的指针第二个则是告诉shared_ptr在析构时不要使用delete来操作指针p,而是用d来操作即把delete p换成d§。 6指针转型函数 static_pointer_cast() const_pointer_cast() dynamic_pointer_cast() 7别名构造函数 template shared_ptr(shared_ptrconstr,element_typep); 举例
auto p1 make_sharedstd::pairint,int(0,1);
shared_ptrint p2(p1, p1-second);p1 是一个指向 std::pairint, int 对象的 shared_ptr其中这个对象包含了两个整数值分别是 0 和 1。 p2 是一个指向整数的 shared_ptr它的构造函数接受两个参数。第一个参数是一个 shared_ptr 对象用于共享资源的所有权即 p2 将共享 p1 所指向的资源。第二个参数是一个原始指针它指向被共享资源中的某个成员。在这里p1-second 是取得 p1 所指向的 std::pair 对象中第二个元素的地址即整数值 1 的地址。 因此p1 指向 std::pairint, int(0, 1)而 p2 指向 p1 所指向的 std::pair 对象中的第二个整数值即整数值 1。两者的引用计相同但指向的内容不同。 8owner_less基于所有权的比较函数
3.4 weak_ptr 没有重载operator*和-不共享指针不能操作资源不会引起引用计数的增加或减少
3.5 pool 只能作为普通数据类型的内存池不能将其应用于复杂的类和对象因为它只分配内存不调用构造函数
3.6 object_pool 3.7 singleton_pool:可以理解为就是一个静态的pool
实用工具 4.1 noncopyable class do_not_copy:boost::noncopyable{…};