38 Commits (3fe60e91b2d7db5a4fb6dc39dc9dfba2c953ddf2)
 

Author SHA1 Message Date
sunjiawei 3fe60e91b2 change fandubaogao
7 months ago
黄熙来 688a027b81 update functional.h and util.h
7 months ago
caoxin 5b839df1f8 list.h
7 months ago
Shiina_cd 1d399c0a95 update deque.h
7 months ago
赵澜博 deeabedd43 上传文件至 'src/MyTinySTL-master/MyTinySTL'
7 months ago
赵澜博 42950ef3ff 上传文件至 'src/MyTinySTL-master/MyTinySTL'
7 months ago
赵澜博 a54a3b1f78 上传文件至 'src/MyTinySTL-master/MyTinySTL'
7 months ago
Khara0 feeb30d02e 对algo.h作注释
7 months ago
黄熙来 10fae69251 update functional.h
7 months ago
sunjiawei 43772d3dd2 这段代码为 `unordered_multimap` 类提供了详细的桶接口和哈希策略相关的方法,以及友元函数和重载操作符的实现。桶接口允许用户访问和操作容器的内部桶结构,包括获取桶的数量、大小和特定桶的迭代器。哈希策略部分提供了获取和设置负载因子、哈希函数和键比较函数的方法,以便用户可以根据需要调整容器的性能。此外,友元函数和重载操作符使得容器之间的比较和交换操作更加方便和直观,提升了容器的易用性和灵活性。
7 months ago
sunjiawei 1e557543b5 这段代码定义了 `unordered_multiset` 类的修改容器操作部分,提供了多种方法来插入、删除和查找元素。`emplace` 和 `emplace_hint` 函数允许在容器中直接构造新元素,其中 `emplace_hint` 提供了插入位置的提示以提高效率。`insert` 函数用于插入元素,支持单个元素和范围插入,并允许重复。`erase` 函数用于删除元素,可以删除指定位置或范围内的元素,也可以删除所有指定键值的元素。`clear` 函数用于清空容器中的所有元素,而 `swap` 函数用于交换两个容器的内容。查找相关函数包括 `count`、`find` 和 `equal_range`,用于统计元素个数、查找元素及其范围。此外,还提供了桶接口和哈希策略相关函数,用于获取和设置容器的桶数量、负载因子等属性。最后,重载了相等和不等操作符,以便比较两个 `unordered_multiset` 容器的内容是否相同。
7 months ago
Shiina_cd ebb9e68a7a update unordered_map.h
7 months ago
Khara0 427bfa3f8c 更改文件布局
8 months ago
sunjiawei bac1616fdd 以上注释内容带来的代码理解:代码体现了两个模板类`unordered_map`和`unordered_multimap`的实现,它们分别对应于标准库中的`std::unordered_map`和`std::unordered_multimap`。这些类使用哈希表作为底层数据结构,允许快速的查找、插入和删除操作。`unordered_map`不允许键值对的键重复,而`unordered_multimap`允许键的重复。类中包含了构造函数、复制和移动构造函数、赋值运算符、迭代器操作、容量查询、修改容器操作、元素插入和擦除、查找操作以及桶接口等成员函数。此外,还提供了比较运算符的重载和`swap`函数,以支持容器之间的比较和交换操作。这些类的设计旨在提供一种高效的方式来存储和访问键值对数据。
8 months ago
sunjiawei 5e94302b07 以上注释详细解释了 `unordered_set` 和 `unordered_multiset` 这两个基于哈希表实现的容器类。这些类提供了构造、复制、移动、迭代器操作、容量查询、元素插入与删除、查找以及桶管理等功能。它们允许开发者在不保证元素顺序的情况下,高效地进行元素的存储和检索,其中 `unordered_set` 不允许键值重复,而 `unordered_multiset` 允许键值重复。此外,还包括了比较操作符的重载和 `swap` 函数的特化,以支持容器间的比较和数据交换。这些容器的设计遵循异常安全保证,其中 `emplace`、`emplace_hint` 和 `insert` 操作提供强异常安全保证。
8 months ago
sunjiawei ec89b4253a 在文件`util.h`中,我们提供了一个名为`mystl`的命名空间,其中包含了C++标准库中`utility`头文件的简化版本。这个简化版本定义了`pair`结构体模板,它可以用来存储两个不同类型的值。我们为`pair`提供了多种构造函数,包括默认构造、拷贝构造、移动构造以及从其他类型的`pair`构造。此外,我们还提供了拷贝赋值和移动赋值运算符,以及析构函数。为了支持比较,我们重载了相等、小于、不等于等比较运算符。我们还提供了一个`swap`函数,用于交换两个`pair`对象的值,以及一个全局的`make_pair`函数,用于方便地创建`pair`对象。所有的这些功能都通过模板实现,以支持类型通用性和完美转发,确保类型安全性和效率。`
8 months ago
sunjiawei 2275a6a510 以上注释提供了对 vector 模板类实现细节的全面解释。它们涵盖了 vector 的构造函数、复制和移动赋值操作符、内存分配和释放、元素插入与删除、容量调整以及元素赋值等功能。每个成员函数的注释详细描述了函数的行为、参数的作用以及任何异常处理。此外,还包括了对比较操作符的重载和 swap 函数的实现,这些都是为了提供完整的 vector 容器功能。这些注释旨在帮助开发者理解 vector 类的内部机制和实现逻辑,以便更有效地使用和维护该容器。
8 months ago
luanshihongtu 6725415db5 update basic_string.h construct.h deque.h exceptdef.h
8 months ago
longhao 24a28ef4b9 update memory.h
8 months ago
root edfe0163f9 update map.h
8 months ago
Shiina_cd b6098065ad update stack.h and queue.h
8 months ago
sunjiawei d4d74e1a98 Merge branch 'main' of https://bdgit.educoder.net/pfuc5ij8g/MyTinySTL
8 months ago
sunjiawei 1ef64c15a4 这段代码是一个用于性能测试的头文件,它包含了两个宏定义 `FUN_TEST1` 和 `FUN_TEST2` 用于测量和打印函数执行时间,其中 `FUN_TEST1` 用于无额外参数的函数性能测试,而 `FUN_TEST2` 用于需要一个额外参数的函数测试。代码中定义了两个测试函数 `binary_search_test` 和 `sort_test`,分别用于比较标准库和自定义库中二分查找和排序算法的性能。性能测试的入口点是 `algorithm_performance_test` 函数,它在 `PERFORMANCE_TEST_ON` 宏被定义时执行。整个文件通过命名空间 `mystl::test::algorithm_performance_test` 组织,以防止命名冲突,并确保代码的整洁结构。
8 months ago
Shiina_cd 4d5cdc804d 对queue.h做注释
8 months ago
caoxin e5fdcccf29 update vector.h util.h unordered_ste.h
8 months ago
Shiina_cd 6813dc2016 对stack.h做注释
8 months ago
Khara0 01c71207be 增加了Test分支的部分注释
8 months ago
黄熙来 86994bc791 update functional.h
8 months ago
Khara0 4ed9c7641c the structure of the project
9 months ago
Khara0 10d8fa116b 1
9 months ago
pfuc5ij8g 4c647bf93c Update README.md
9 months ago
Khara0 82dfe90b05 1
9 months ago
pfuc5ij8g 8b33bc08bf ADD file via upload
9 months ago
Khara0 435f56ba87 Initial commit
10 months ago
Khara0 1239070d34 dd
10 months ago
Khara0 d04dfef198 test
10 months ago
pfuc5ij8g 2ed1f303eb Add 1
10 months ago
pfuc5ij8g 386101782b Initial commit
10 months ago