zoukankan      html  css  js  c++  java
  • Allocators与Criterion的相同点及区别

    C++98:

    1、相同点:

    Allocators having the same type were assumed to be equal so that memory allocated by one
    allocator could be deallocated by another allocator of the same type.

    It was not possible to change the memory resource at runtime.
    Allocators had limitations in the ability to hold a state, such as bookkeeping information or
    information about where to allocate next.

    2、区别:

    Allocators were not swapped when the containers were swapped.

    Allocators were not handled consistently, because copy constructors copied allocators, whereas
    the assignment operator did not. Thus, the copy constructor did not have the same effect as
    calling the default constructor and the assignment operator afterward.

    C++11:

    A couple of proposed changes to C++11 are intended to solve all these issues. For example:
    • Library components are no longer allowed to assume that all allocators of a specific type compare
    equal.
    • Allocator traits solve some of the problems created by stateful allocators.
    • A scoped allocator adapter provides the ability used to propagate the allocator from the container
    to the contained elements.
    These enhancements provide the tools to build a polymorphic allocator, which allows to compare or
    assign two containers with different allocator types that are derived from a common allocator type
    the container uses. However, due to time constraints, a standard polymorphic allocator is not part of
    C++11.

    而STL Container在create时可以指定criterion

    copy和assign的时候许指定Criterion,否则使用默认项

    swap的时候尽可能交换sorting criterion, equivalence predicate,and hash function object

  • 相关阅读:
    转:PCIe基础知识
    转:HDMI介绍与流程
    Java EJB JBoss
    冒泡排序
    多线程
    快排
    Talk is cheap,show me the code
    oracle union
    Oracle 【to_number】【instr】
    DB 【ACID】
  • 原文地址:https://www.cnblogs.com/ptolemaeus/p/Allocators_Criterion_Same_Verse.html
Copyright © 2011-2022 走看看