博客专栏  >  编程语言   >  C C++标准库

C C++标准库

C/C++标准库使用细节和注意事项,C/C++标准库源代码研究和编写。

关注
16 已关注
52篇博文
  • [C/C++标准库]_[初级]_[转换UTC时间到local本地时间]

    场景1.如果有面向全球用户的网站, 一般在存储时间数据时存储的是UTC格式的时间, 这样时间是统一的, 并可以根据当地时区来进行准确的转换.2.存储本地时间的问题就在于如果换了时区, 那么显示的时间并...

    2017-02-15 11:03
    1377
  • [C++11]_[初级]_[使用std::move移动对象资源]

    场景: C++ 标准库使用比如vector::push_back 等这类函数时,会对参数的对象进行复制,连数据也会复制.这就会造成对象内存的额外创建, 本来原意是想把参数push_back进去就行了....

    2016-02-25 11:59
    5796
  • [C++11]_[初级]_[shared_ptr的使用场景]

    场景 C++11之前,使用auto_ptr只能适用于 new 出来的对象,为此我还专门创建了一些工具类来释放对象.使用智能指针的方式释放malloc出来的堆空间,C++11出现后可以使用shared_...

    2016-02-25 16:05
    4116
  • [C++11]_[初级]_[unique_ptr的使用场景]

    场景 std::unique_ptr 是C++11提供的新的智能指针,特点有:非线程安全的 auto_ptr的替代品,因为它不提供copy Constructor和 Copy Assignable,也...

    2016-03-03 23:16
    2086
  • [C++11]_[初级]_[weak_ptr的使用场景]

    场景 弱引用特性,不拥有对象,只有延迟到尝试调用Lock()时才会有可能临时拥有对象: 只是持有一个没有拥有权的被shared_ptr托管的对象. 只有调用lock()创建shared_ptr指针时...

    2016-03-04 00:52
    2055
  • [C/C++11语法]_[初级]_[lamba 表达式介绍]

    场景 lambda 表达式在很多语言里都有一席之地,因为它的原因,可以在函数里快速定义一个便携的函数,或者在函数参数里直接快速构造和传递. 它可以说是匿名函数对象,一般只适用于某个函数内,只做临时使用...

    2016-03-21 10:06
    1211
  • [C/C++11]_[初级]_[使用正则表达式库regex]

    场景 正则表达式在处理非常量字符串查找,替换时能很省事,如果稍微复杂点的字符串匹配, 没有正则表达式还真做不出来. C++11 为我们提供了正则表达式库. 使用起来比boost的正则库方便. 搞Jav...

    2016-03-21 14:56
    4552
  • [C/C++11]_[初级]_[使用std::tuple元组-固定大小的集合]

    场景 std::pair 可以打包最多两个值到一个类里,常用在需要返回两个值的函数里,因为可以不需要自己定义一个wrapper类,普通集合类肯定不能用,因为C++的集合只能存储泛型的(相同类型)对象....

    2016-04-24 15:43
    2073
  • [C/C++11]_[初级]_[使用std::function来封装函数]

    说明 类模板 std::function 是一个通用目的的函数包裹对象. 于普通函数不同的是,它是一个类对象,可以复制,销毁,存储; 缺点之一它是模板类,使用时必须实例化特定类型才可以,不同类型又不能...

    2016-04-26 11:16
    3555
  • [C/C++11]_[初级]_[使用enumerations类型]

    场景 枚举类型在C++里用的最多就是声明某种数值类型,之后用switch来分别处理这些类型. C++11 定义了一种 enumeration(枚举类型),它区别于C的 enumerators(枚举器)...

    2016-05-05 15:37
    1313
  • [C/C++]_[初级]_[Trim掉字符串的前后空格]

    场景 C++ 字符串Trim空格一直不在标准库里, 但是又很常用, 比如在界面输入一些字符串需要过滤掉前后空格后保存到数据库里;又或者需要进行字符串比较时过滤掉前后空格来精确比较都需要用到Trim方法...

    2016-05-30 10:09
    1717
  • [C/C++]_[初级]_[使用remove,remove_if,remove_copy_if过滤元素或字符]

    场景 我们经常会过滤掉一个容器里不符合的元素,留下有用的元素. 如果用C++98的写法的话必然得用一个for循环+容器的erase的方法进行匹配,代码量也是挺高的,而且erase方法也有自身的注意事项...

    2016-05-30 11:26
    1961
  • [并发并行]_[C/C++]_[C++标准库里的线程安全问题]

    场景1.写普通的程序时, 经常会使用cout来做输出, 每个进程只有一个控制台, 如果多线程调用cout时会出状况吗?2.之所以研究cout会不会在并发下调用有问题, 是因为曾经有一个bug的崩溃点正...

    2017-01-14 15:55
    1217
  • [C/C++11]_[初级]_[std::bind介绍和使用]

    场景1.C++11 引入了std::function 对象, 这个对象可以通过std::bind封装所有的函数, 并通过代理调用这个std::function的方式调用这个函数. 比如通过统一的方式...

    2017-01-20 14:01
    321
  • [C/C++标准库]_[初级]_[map的查找函数分析]

    场景: 1. map在查找非数值索引(数值非重复索引可以使用vector)的对象时是高效率的,因为用的红黑树的实现,查找和插入都是logarithmic time 效率很高. 2.map可以说是很实用...

    2015-05-31 19:50
    3292
  • [C/C++11]_[初级]_[实用时间库chrono]

    场景 C++11开始提供了一个 实用时间库,相比C的time_t强多了,最明显的是可以精确到纳秒. vs2010还不支持这个库,所以比较可惜,对于新开发的项目,建议用2015可以使用最新特性. 一般用...

    2016-05-30 14:30
    2303
  • [C/C++标准库]_[初级]_[std::deque和std::vector比较]

    std::deque 特性 双向队列,队列意味着存储方式不一样,deque不是连续存储的. 允许在头尾快速插入或删除,对其他位置的引用对象无影响,不会有copy 发生. 内部存储会根据需要自动扩展,扩...

    2016-06-29 11:25
    1357
  • [C/C++标准库]_[初级]_[使用算法库函数时需要注意自定义BinaryPredicate和UnaryPredicate]

    场景: 1. 算法库的函数参数大部分都定义了一个回调, 用来作为比较判断,排序等,比如replace_if 和 sort. 2. 大部分算法库里的函数基本都需要数据结构是已排序的. 3. 使用某个函数...

    2015-09-29 16:35
    1614
  • [C/C++标准库]_[初级]_[使用ctype里的isxxx函数时要注意的事项]

    场景: 1. 标准库里的 ctype.h里的函数是用于1个字节的判断的,但是参数却是int, 这样很容易导致误用.

    2015-09-29 15:17
    1534
  • [C/C++标准库]_[初级]_[std::vector的多线程读写问题]

    场景: 1. 有时候需要使用vector 或 map作为多线程的共享变量, map是tree结构, 读和写方法都不是线程安全的, 即同时读写会有崩溃的现象. 2. std::vector直观来说只用p...

    2015-08-07 18:49
    4363

img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部