静水流深
melanie的天地
内存处理的基本工具
STL定义五个全局函数,作用于未初始化窨上。这样的功能对于窗口的实现很有帮助,用于
构造的constrcut()函数和用于析构的destroy(),
另三个函数是
uninitialized_copy(),是uninitialized_fill(),uninitialized_fill_n()
分别对应于高导次函数copy(),fill(),fill_n() 这些都是STL,前三个低层次函数的使用应该包含<memory>
construct()接受一个指针p和一个初值value,该函数的用途就是将初值设定到指定的空间上。C++的placement new运处子阿用来完成这一任务
destory()有两个版本,第一版本接受一个指针,准务将该指针所指之物析构掉。这很简单,直接调用该对象的构构函数即可。第二版本接受first和last两个迭代器,准备将两个迭代器内的所有对象都析构掉。我们不知道这个范围有多大,万一很大,而每个对象的析构函数都无关痛痒(所谓trivial destructor),那么一次次调用这些无关痛痒的函数对效率是一种伤害。首先利用value_type()获得迭代器所指对象的型别,再利用_type_trait<T>判断该型别的析构函灵敏是否无关痛痒。叵是(_true_type),则什么也不做就结束;若否(_false_type),这才以循环方式巡访整个范转,并在循环中每经历史潮流个对象就调用第一个版本的destory
#include
<
iostream
>
#include
<
vector
>
using
namespace
std;
class
A
{
public
:
A(
int
a)
{cout
<<
"
A
"
<<
endl;}
}
;
int
main()
{
A
*
a;
//
a=new A;
//
new分配内存必须先构造
a
=
new
A(
1
);
vector
<
A
>
B;
//
由此说明vector使用的是内存分配与对象构造相分离的技术
system(
"
pause
"
);
return
0
;
}
posted on 2010-03-18 15:16
melanie
阅读(86)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
博客园最新博文
博问
管理
Powered by:
C++博客
Copyright © melanie
<
2026年6月
>
日
一
二
三
四
五
六
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
导航
C++博客
首页
新随笔
联系
聚合
管理
统计
随笔 - 1
文章 - 1
评论 - 0
引用 - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
C++(1)
(rss)
C++/STL
(rss)
数据结构与算法分析
(rss)
随笔档案
2010年3月 (1)
文章档案
2010年3月 (1)
搜索
最新评论