This commit is contained in:
52
README.md
52
README.md
@@ -46,6 +46,7 @@ TinySTL
|
|||||||
* list:100%
|
* list:100%
|
||||||
* unordered_set:100%
|
* unordered_set:100%
|
||||||
* unique_ptr:100%
|
* unique_ptr:100%
|
||||||
|
* shared_ptr:100%
|
||||||
* STL Algorithms:
|
* STL Algorithms:
|
||||||
* fill:100%
|
* fill:100%
|
||||||
* fill_n:100%
|
* fill_n:100%
|
||||||
@@ -103,6 +104,7 @@ TinySTL
|
|||||||
* directed_graph:100%
|
* directed_graph:100%
|
||||||
* trie tree:100%
|
* trie tree:100%
|
||||||
* unique_ptr:100%
|
* unique_ptr:100%
|
||||||
|
* shared_ptr:100%
|
||||||
|
|
||||||
#TinySTL性能测试:
|
#TinySTL性能测试:
|
||||||
###测试环境:Windows 7 && VS2013 && release模式
|
###测试环境:Windows 7 && VS2013 && release模式
|
||||||
@@ -530,4 +532,52 @@ TinySTL
|
|||||||
}
|
}
|
||||||
std::cout << std::endl;
|
std::cout << std::endl;
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
####(17):shared_ptr
|
||||||
|
|
||||||
|
shared_ptr<int> sp1(new int(10));
|
||||||
|
assert(*(sp1.get()) == 10);
|
||||||
|
|
||||||
|
shared_ptr<int> sp2(new int(1), default_delete<int>());
|
||||||
|
assert(sp2.use_count() == 1);
|
||||||
|
|
||||||
|
auto sp3(sp2);
|
||||||
|
assert(sp3.use_count() == 2);
|
||||||
|
|
||||||
|
auto sp4 = sp2;
|
||||||
|
assert(sp4.use_count() == 3);
|
||||||
|
|
||||||
|
assert(sp2.get() == sp3.get() && sp2.get() == sp4.get());
|
||||||
|
assert(sp2 == sp3 && !(sp2 != sp4));
|
||||||
|
|
||||||
|
shared_ptr<string> sp5(new string("hello"));
|
||||||
|
assert(*sp5 == "hello");
|
||||||
|
sp5->append(" world");
|
||||||
|
assert(*sp5 == "hello world");
|
||||||
|
|
||||||
|
auto sp6 = make_shared<string>(10, '0');
|
||||||
|
assert(*sp6 == "0000000000");
|
||||||
|
|
||||||
|
shared_ptr<int> spp;
|
||||||
|
assert(spp == nullptr);
|
||||||
|
assert(!(spp != nullptr));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
####(18):unique_ptr
|
||||||
|
|
||||||
|
auto up = make_unique<string>(10, '0');
|
||||||
|
up->append("111");
|
||||||
|
assert(*up == "0000000000111");
|
||||||
|
|
||||||
|
up.release();
|
||||||
|
assert(up == nullptr);
|
||||||
|
|
||||||
|
up.reset(new string("hello"));
|
||||||
|
assert(*up == "hello");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user