Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
TinySTL
提交
8e6c710c
T
TinySTL
项目概览
OpenDocCN
/
TinySTL
通知
4
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TinySTL
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
8e6c710c
编写于
12月 06, 2015
作者:
Z
zouxiaohang
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #8 from jiangtao92/working
修复inser_aux中出现的内存泄漏问题.增加测试实例
上级
b728798d
3d7af282
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
51 addition
and
5 deletion
+51
-5
TinySTL/Detail/Vector.impl.h
TinySTL/Detail/Vector.impl.h
+9
-5
TinySTL/Test/VectorTest.cpp
TinySTL/Test/VectorTest.cpp
+42
-0
未找到文件。
TinySTL/Detail/Vector.impl.h
浏览文件 @
8e6c710c
...
...
@@ -144,12 +144,16 @@ namespace TinySTL{
difference_type
locationNeed
=
distance
(
first
,
last
);
//last - first;
if
(
locationLeft
>=
locationNeed
){
iterator
tempPtr
=
end
()
-
1
;
for
(;
tempPtr
-
position
>=
0
;
--
tempPtr
){
//move the [position, finish_) back
//*(tempPtr + locationNeed) = *tempPtr;//bug
construct
(
tempPtr
+
locationNeed
,
*
tempPtr
);
if
(
finish_
-
position
>
locationNeed
){
TinySTL
::
uninitialized_copy
(
finish_
-
locationNeed
,
finish_
,
finish_
);
std
::
copy_backward
(
position
,
finish_
-
locationNeed
,
finish_
);
std
::
copy
(
first
,
last
,
position
);
}
else
{
iterator
temp
=
TinySTL
::
uninitialized_copy
(
first
+
(
finish_
-
position
),
last
,
finish_
);
TinySTL
::
uninitialized_copy
(
position
,
finish_
,
temp
);
std
::
copy
(
first
,
first
+
(
finish_
-
position
),
position
);
}
TinySTL
::
uninitialized_copy
(
first
,
last
,
position
);
finish_
+=
locationNeed
;
}
else
{
...
...
TinySTL/Test/VectorTest.cpp
浏览文件 @
8e6c710c
...
...
@@ -186,7 +186,48 @@ namespace TinySTL{
assert
(
!
(
foo
==
bar
));
assert
(
foo
!=
bar
);
}
class
TestItem
{
public:
TestItem
()
{
++
count
;
}
TestItem
(
const
TestItem
&
other
)
{
++
count
;
}
virtual
~
TestItem
()
{
--
count
;
}
static
int
getCount
()
{
return
count
;
}
private:
static
int
count
;
};
int
TestItem
::
count
=
0
;
void
testCase15
()
{
assert
(
TestItem
::
getCount
()
==
0
);
{
typedef
TinySTL
::
vector
<
TestItem
>
TVector
;
TVector
t
(
10
);
t
.
push_back
(
TestItem
());
t
.
push_back
(
TestItem
());
t
.
push_back
(
TestItem
());
t
.
insert
(
t
.
begin
(),
t
.
begin
(),
t
.
begin
()
+
1
);
}
assert
(
TestItem
::
getCount
()
==
0
);
}
void
testAllCases
(){
testCase1
();
...
...
@@ -203,6 +244,7 @@ namespace TinySTL{
testCase12
();
testCase13
();
testCase14
();
testCase15
();
}
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录