Files
rippled/include/xrpl/basics
Bart 2406b28e64 refactor: Remove unused and add missing includes (#5293)
The codebase is filled with includes that are unused, and which thus can be removed. At the same time, the files often do not include all headers that contain the definitions used in those files. This change uses clang-format and clang-tidy to clean up the includes, with minor manual intervention to ensure the code compiles on all platforms.
2025-03-11 14:16:45 -04:00
..
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:16 -05:00
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:16 -05:00
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:16 -05:00
2024-06-20 13:57:14 -05:00
2024-10-15 18:27:56 -05:00
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:16 -05:00
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:14 -05:00

Basics

Utility functions and classes.

ripple/basic should contain no dependencies on other modules.

Choosing a rippled container.

  • std::vector

    • For ordered containers with most insertions or erases at the end.
  • std::deque

    • For ordered containers with most insertions or erases at the start or end.
  • std::list

    • For ordered containers with inserts and erases to the middle.
    • For containers with iterators stable over insert and erase.
    • Generally slower and bigger than std::vector or std::deque except for those cases.
  • std::set

    • For sorted containers.
  • ripple::hash_set

    • Where inserts and contains need to be O(1).
    • For "small" sets, std::set might be faster and smaller.
  • ripple::hardened_hash_set

The following container is deprecated

  • std::unordered_set
  • Use ripple::hash_set instead, which uses a better hashing algorithm.
  • Or use ripple::hardened_hash_set to prevent algorithmic complexity attacks.