- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 STL中的构造,析构及填充
头文件c++/5/bits/stl_construct.hc++/5/bits/stl_uninitialized.h源代码及解析stl_construct.h解析//已经给对象分配空间的情况下,构造对象。#if __cplusplus >= 201103L template<typename _T1, typename... _Args> i...
2018-12-05 22:16:21
721
原创 STL中vector的基类实现
头文件c++/5/bits/stl_vector.h源代码解析/// See bits/stl_deque.h's _Deque_base for an explanation. // 数据类型,构造器类型 template<typename _Tp, typename _Alloc> struct _Vector_base { //...
2018-12-04 23:02:45
760
原创 STL中的构造器
头文件c++/5/ext/new_allocator.hc++/5/ext/allocator_traits.hx86_64-linux-gnu/c++/5/bits/c++allocator.hc++/5/bits/allocator.h作用为基本数据类及定义类 类型 构造内存空间。源代码解析new_allocator.h//new_allocator.hte...
2018-12-04 22:01:30
845
原创 Boost中datastruct的multi-array用法
头文件multi_array.hpp作用创建多维数组。构造需要2步:1.指定 数据类型及维度,2.指定每一个维度有多少列方式一:typedef boost::multi_array<double, 3> array_type;array_type A(boost::extents[3][4][2]);方式二:typedef boost::multi_ar...
2018-11-28 15:44:56
408
原创 Boost中Datastruct模块的variant用法
头文件boost/variant.hpp作用将基本数据类型及自定义类,以variant类型存储,或者boost::get用于将variant转成需要的类型,如果失败,则抛出bad_cast_exception;另外结合boost::static_visitor,可使用更加强大的功能。 举例std::vector< boost::variant<int, std:...
2018-11-28 13:37:53
258
原创 Boost中DataStruct模块的any
头文件boost/any.hpp作用将基本数据类型,自定义类类型,指针类型,转化为any,同时通过any_cast函数,将any类型,转为需要的类型,如果转化失败,则会抛出bad_any_cast异常。any类,有如下APIswap:交换,与std::swap一致。empty:判断any是否为空,如果构造一个无惨的any,则为 trueclear:将 有参数类型的an...
2018-11-27 22:07:33
265
原创 Boost中string的regex用法
头文件boost/algorithm/string/regex.hpp作用string的regex有如下APIfind_regex:查找字符串str中第一次满足 regex的子串,返回子串起始,终止位置。replace_regex:查找字符串str中第一次满足 regex的子串,并用新子串 替换。replace_all_regex:查找字符串str中所有满足 regex的...
2018-11-27 00:04:01
1433
原创 Boost中string的erase及replace用法
头文件boost/algorithm/string/erase.hppboost/algorithm/string/replace.hpp作用字符串删除有如下APIerase_range_copy:删除字符串str,从指定位置[begin, end),返回新的字符串,原来字符串不改变。erase_range:删除字符串str,从指定位置[begin, end),原来字符串改...
2018-11-26 23:51:02
4798
原创 Boost中string的split用法
头文件boost/algorithm/string/split.hpp作用string的split包括如下APIfind_all:在字符串string str中查找string sub,返回找到的所有的 sub。ifind_all:在字符串string str中查找string sub,同时忽略大小,返回找到的所有的 sub。split:将字符串按照某些条件,进行分割,返...
2018-11-25 21:44:08
2019
原创 Boost中string模块的join用法
头文件boost/algorithm/string/join.hpp作用string的join系列 包括如下APIjoin:将字符串 列表,使用指定的字符,连接起来,返新的字符串。join_if:将字符串 列表,满足特定条件,使用指定的字符,连接起来,返新的字符串。举例#include <boost/algorithm/string/join.hpp>...
2018-11-25 21:34:00
5404
原创 Boost中string模块的predicate用法
头文件boost/algorithm/string/predicate.hpp作用string的谓语有如下API:starts_with,判断string str是否以string sub开始,返回true,或falseistarts_with,判断string str是否以string sub开始,同时忽略大小写,返回true,或falseends_with,判断str...
2018-11-25 21:25:05
1040
原创 Boost中string的查找用法
头文件boost/algorithm/string/find.hpp作用string的查找有如下APIfind_first,在大字符串中查找子串第一次出现时,返回 子串在大串的位置。ifind_first,在大字符串中查找子串第一次出现时,并且忽略大小,返回 子串在大串的位置。find_last,在大字符串中查找子串最后一次出现时,返回 子串在大串的位置。ifind_...
2018-11-25 21:03:21
2250
原创 Boost中string的大小写转换用法
头文件boost/algorithm/string/case_conv.hpp作用主要有如下APIto_lower_copy:将原来字符串,转换为小写字符串,并返回新的字符串,原来字符串不改变。to_upper_copy:将原来字符串,转换为大写字符串,并返回新的字符串,原来字符串不改变。to_lower:将原来字符串,转换为小写字符串,原来字符串改变。to_uppe...
2018-11-25 21:03:11
3384
原创 Boost中string的操作trim用法
头文件boost/algorithm/string/trim.hppboost/algorithm/string/trim_all.hpp作用删除字符串首尾空格,主要包括如下APItrim_left_copy:删除字符串首部空格,并返回 新的字符串,原来的字符串 不改变。trim_right_copy:删除字符串尾部空格,并返回 新的字符串,原来的字符串 不改变。tri...
2018-11-25 21:02:56
12641
原创 Boost中Core模块的visit_each用法
头文件boost/visit_each.hpp作用按照 指定的谓词 处理,如果参数为一个集合,则处理集合的每一个元素,如果参数为一个元素,则,只处理一次。举例#include <boost/visit_each.hpp>#include <boost/core/lightweight_test.hpp>#include <string&g...
2018-11-25 21:02:36
518
原创 Boost中Core模块的typeinfo用法
头文件boost/core/typeinfo.hpp作用与std::typeinfo 功能一致举例#include <boost/core/typeinfo.hpp>#include <boost/core/lightweight_test.hpp>#include <iostream>int main(){ BOOST...
2018-11-24 14:33:02
355
原创 Boost中Core模块的ref用法
头文件boost/core/ref.hpp作用能够将 基本数据类型及自定义类,进行 包装,及解引用;还可以对函数进行 包装,及解引用主要API:boost::ref,boost::cref,boost::is_reference_wrapper,boost::unwrap_reference主要宏:BOOST_TEST_REF,BOOST_TEST_CREF举例基本数...
2018-11-24 14:25:54
363
原创 Boost中Core模块的lightweight_test用法
头文件boost/core/lightweight_test.hpp作用lightweight_test.hpp提供了大量的宏定义,如下#define BOOST_TEST(expression) /*判断 表达式 为真 */#de...
2018-11-24 12:17:53
250
原创 Boost中Core模块的noncopyable用法
头文件boost/noncopyable.hpp作用noncopyable能让继承它的子类,不具备 拷贝构造及赋值构造 的功能。举例#include <boost/noncopyable.hpp>#include <iostream>// This program demonstrates compiler errors resulting ...
2018-11-24 11:46:17
329
原创 Boost中Core模块的is_same用法
头文件boost/core/is_same.hpp作用is_same是一个模板类,内部有一个 static const bool value,接收两个参数,都是数据类型,包括 自定义的类型,如果两个类型一致,则 value=true,否则 value=false举例#include <boost/core/is_same.hpp>#include <boo...
2018-11-24 11:37:37
787
原创 Boost中Core模块的ignore_unused用法
头文件boost/core/ignore_unused.hpp作用C++中,没有使用的变量,在编译期间,会出现警告,ingnore_unused就是解决这一问题的。举例#include <boost/core/ignore_unused.hpp>BOOST_CXX14_CONSTEXPR int test_fun(int a){ boost::ig...
2018-11-24 11:30:11
1428
原创 Boost中Core模块的enable_if用法及说明
头文件boost/utility/enable_if.hpp作用enable_if,lazy_enable_if,disable_if,lazy_disable_if 作用说明enable_if 说明template <class Cond, class T = void> struct enable_if : public enable_if_c<Co...
2018-11-24 11:20:09
1263
原创 Boost中Core模块的demangle用法及说明
头文件boost/core/demangle.hpp作用我们都知道,C++中,编译变量,类,及全局函数,编译后的名称,已经发生了改变,我们称之为 添加修饰。那么,我们有什么方法将这种修饰,擦除掉呢?,demangle能够帮助我们完成这一项功能。举例boost::core::demangled_name#include <boost/core/typeinfo.hp...
2018-11-24 10:46:15
1514
原创 Boost中Core模块的checked_delete用法
头文件boost/core/checked_delete.hpp作用delete 对象指针,或 对象数组指针,如果对象是不完整定义类型或者空指针,则 编译期间 出错。何为不完整类型定义,就是只有 类型前置声明,没有引入头文件。举例//base.h#include <iostream>using namespace std;class Base{p...
2018-11-24 10:11:22
404
原创 boost中Core模块,addressof使用及说明
头文件boost/core/addressof.hpp作用获取基本变量的地址,或者是 类变量的地址,或者是 函数的地址,它比 &符号 功能更强,如果一个class 重写 &运算符 ,当对这个类的变量 取&,其意义不是 获取对象的地址,而是 会调用 &运算函数,而 addressof,则不管 class 是否重写 &运算符,它都会去对象的地址。...
2018-11-24 09:40:45
752
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人