From 6d10fd3261721376e334847e1ea1fb112a8184da Mon Sep 17 00:00:00 2001 From: peilixia Date: Sat, 28 Jan 2023 17:03:50 +0800 Subject: [PATCH] Add guide for sorted_vector.h Issue:I6BBHK Test:NA Signed-off-by: peilixia --- docs/zh-cn/c-utils-guide-sortedVector.md | 93 ++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 docs/zh-cn/c-utils-guide-sortedVector.md diff --git a/docs/zh-cn/c-utils-guide-sortedVector.md b/docs/zh-cn/c-utils-guide-sortedVector.md new file mode 100644 index 0000000..9d4d415 --- /dev/null +++ b/docs/zh-cn/c-utils-guide-sortedVector.md @@ -0,0 +1,93 @@ +# 有序vector + +## 概述 +### 简介 +提供了一个可以对插入元素自动排序的vector,具有添加元素,删除最后一个元素,合并vector等功能。 +## 涉及功能 +### class SortedVector +#### 接口说明 + +|返回类型 |名称 | +| -------------- | -------------- | +| | **SortedVector**()
构造函数。 | +| | **SortedVector**(const SortedVector< TYPE, false >& rhs)
拷贝构造函数,不允许出现重复元素。 | +| | **SortedVector**(const SortedVector< TYPE, true >& rhs)
拷贝构造函数,允许出现重复元素。 | +| | **SortedVector**(const std::vector< TYPE >& orivect) | +| virtual | **~SortedVector**()
析构函数。 | +| ssize_t | **Add**(const TYPE& item)
在正确的位置添加一个新元素`item`。 | +| const TYPE* | **Array**() const
返回一个指向vector的第一个元素的const指针,用于访问vector的元素。 | +| const TYPE& | **Back**() const
返回vector末尾元素的引用。 | +| iterator | **Begin**()
返回非const类型的vector起始元素的迭代器。 | +| const_iterator | **Begin**() const
返回const类型的vector起始元素的迭代器。 | +| size_t | **Capacity**() const
返回在分配新的存储空间之前能存储的元素总数。 | +| void | **Clear**()
清空vector. | +| TYPE* | **EditArray**()
返回一个指向vector的第一个元素的非const指针,用于访问vector的元素。 | +| TYPE& | **EditItemAt**(size_t index)
返回vector的`index`对应的元素值。 | +| iterator | **End**()
返回非const类型的vector末尾元素的迭代器。 | +| const_iterator | **End**() const
返回const类型的vector末尾元素的迭代器。 | +| iterator | **Erase**(size_t index)
如果`index`小于vector的size,就删除`index`处的元素。 | +| const TYPE& | **Front**() const
返回vector起始元素的引用。 | +| ssize_t | **IndexOf**(const TYPE& item) const
查找vector中元素值为`item`的索引。 | +| bool | **IsEmpty**() const
返回vector是否为空。 | +| size_t | **Merge**(const SortedVector< TYPE, AllowDuplicate >& sortedVector) | +| size_t | **Merge**(const std::vector< TYPE >& invec)
将`invec`合并到`vec_`中。 | +| const TYPE& | **MirrorItemAt**(ssize_t index) const
返回vector的元素值。 | +| SortedVector< TYPE, AllowDuplicate >& | **operator=**(const SortedVector< TYPE, false >& rhs)
拷贝赋值运算符。 | +| SortedVector< TYPE, AllowDuplicate >& | **operator=**(const SortedVector< TYPE, true >& rhs) | +| const TYPE& | **operator[]**(size_t index) const
根据输入的索引去访问vector的元素。 | +| size_t | **OrderOf**(const TYPE& item) const
查找应插入这个值为`item`的位置。 | +| void | **PopBack**()
删除vector的最后一个元素。 | +| ssize_t | **SetCapcity**(size_t size)
设置vector的capacity为`size`。 | +| size_t | **Size**() const
返回vector的元素个数。 | + +## 使用示例 + +1. 示例代码(伪代码) + +```c++ +#include +#include "../include/sorted_vector.h" + +using namespace OHOS; +using namespace std; + +constexpr int SIZE = 4; + +int main() +{ + vector vec; + for (int i = 0; i < SIZE; i++) { + vec.push_back(i); + } + + SortedVector sv(vec); + + vector newVec; + newVec.push_back(7); + newVec.push_back(4); + newVec.push_back(3); + newVec.push_back(5); + newVec.push_back(6); + + sv.Merge(newVec); + + for (vector::iterator it = sv.Begin(); it != sv.End(); it++) { + cout << "Merged result: " << *it << endl; + } + + sv.Clear(); + cout << "Cleared size: " << sv.Size() << endl; +} +``` + +2. 测试用例编译运行方法 + +- 测试用例代码参见base/test/unittest/common/utils_sorted_vector_test.cpp + +- 使用开发者自测试框架,使用方法参见:[开发自测试执行框架-测试用例执行](https://gitee.com/openharmony/testfwk_developer_test#%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B%E6%89%A7%E8%A1%8C) + +- 使用以下具体命令以运行`sorted_vector.h`对应测试用例 + +```bash +run -t UT -tp utils -ts UtilsSortedVectorTest +``` \ No newline at end of file -- Gitee