zoukankan      html  css  js  c++  java
  • 内存基本处理工具

    STL有5个全局函数作用于未初始化的空间上。

    前面提到的construct(),destroy(),uninitialized_copy(),uninitialized_fill(),uninitialized_fill_n()

    使用时要包含<memory>

    1、uninitialized_copy()

    template <class InputIterator, class ForwardIterator>
    inline  ForwardIter  uninitialized_copy(InputIterator first, InputIterator last, ForwardIterator result)
    {return _uninitialzed_copy(first,last,result,value_type(result));}

    然后需要_uninitialzed_copy判断是否是POD类型,如果是则调用copy()函数实现,否则必须用construct函数一个个对象进行构造。

    针对char* 和wchar_t*有特化版本,可以采用memmove(直接移动内存内容)

    inline char* uninitialized_copy(const char* first,const char* last,char*result)
    {
    memmove(result,first,last-first);
    return result+(last-first);
    }

    2、uninitialized_fill(),uninitialized_fill_n()

    这两个函数无法用底层操作了,它们的特化分别对应fill()和fill_n()函数

  • 相关阅读:
    [转]跨语言通信方案比较
    C#三种定时器
    Java优化技巧
    websocket初探
    [转]远远走来一个绿茶婊
    赠与今年的大学毕业生-----------胡适
    HDU3068 回文串 Manacher算法
    OpenCV安装与配置
    tkinter事件机制
    哈夫曼压缩
  • 原文地址:https://www.cnblogs.com/daocaorenblog/p/5299752.html
Copyright © 2011-2022 走看看