根据《STL源码剖析》这段节选描述,实现如下代码进行测试

#include "2jjalloca.h"
#include <vector>
#include <iostream>
#include <memory> class INT {
public:
INT(int i) :
m_int(i) {
cout << "INT()" << endl;
}
INT(const INT& o) :
m_int(o.m_int) {
cout << "Copy INT()" << endl;
}
int value() const {
return m_int;
}
private:
int m_int;
}; ostream& operator<<(ostream& o, const INT& i) {
o << i.value();
return o;
} int main(int argc, char **argv) { vector<INT, JJ::allocator<INT>> a = vector<INT, JJ::allocator<INT>>(,
INT());
// INT* p = new char[sizeof(INT) * 2];
cout << endl;
void* p = ::operator new(sizeof(INT) * );
uninitialized_copy(a.begin(), a.begin() + , (INT*) p);
INT* p1 = (INT*) p;
cout << p1[] << ' ' << p1[] << ' ' << p1[] << ' ';
cout << endl;
}
INT()
_allocate
_construct
Copy INT()
_construct
Copy INT()
_construct
Copy INT()
_construct
Copy INT() Copy INT()
Copy INT()
1 1 0
_destroy
_destroy
_destroy
_destroy
_deallocate

经过测试,的确有拷贝构造。

修改下

int main(int argc, char **argv) {
vector<INT, JJ::allocator<INT>> a = vector<INT, JJ::allocator<INT>>(,
INT());
// INT* p = new char[sizeof(INT) * 2];
cout << endl;
// void* p = ::operator new(sizeof(INT) * 2);
uninitialized_copy(a.begin(), a.begin() + , a.begin() + );
// INT* p1 = (INT*) p;
// cout << a[1] << ' ' << a[1] ;
cout << endl;
}
INT()
_allocate
_construct
Copy INT()
_construct
Copy INT()
_construct
Copy INT()
_construct
Copy INT() Copy INT()
Copy INT() _destroy
_destroy
_destroy
_destroy
_deallocate

这点不符合STL描述,依旧调用了copy constructor

uninitialized_copy()效果试验的更多相关文章

  1. 关于Mongodb的全面总结

    MongoDB的内部构造<MongoDB The Definitive Guide> MongoDB的官方文档基本是how to do的介绍,而关于how it worked却少之又少,本 ...

  2. IOS 关于扬声器和听话筒的设置 ----自己试验过的,可以达到扩音器和听筒播放的效果

    今下午项目中使用到了 扬声器和听筒的设置,我项目中是这样的,有一个聊天设置,聊天设置有一个使用扬声器 播放声音的设置. 这个设置是,当你打开那个开关的话,你在聊天中都可以根据你的使用来任意的播放声音, ...

  3. [转]Android试验:如果View的ID相同会出现什么效果?

    1.实验:通过布局编辑器强行指定两个button id相同,然后在代码中通过findViewById()获得句柄后修改其文本.  实验结果:只有一个button的文本变化了,另一个不受影响.  2.实 ...

  4. 【特别推荐】小伙伴们惊呆了!8个超炫的 Web 效果

    CodePen 是一个在线的 HTML.CSS 和 JavaScript 代码编辑器,能够编写代码并即时预览效果.你在上面可以在线展示自己的作品,也可以看到其他人在网页中实现的各种令人惊奇的效果. 今 ...

  5. 利用CSS3D效果制作简易旋转木马效果

    最近看一下css3d的一些特性,想着也实验学习一下,制作个小demo之类的.就练习了一下.开发一个粗糙的选择木马效果,如图 其实就是找到角度和位置,计算每根柱子的旋转角度摆放到3d空间的置顶位置即可. ...

  6. 惊艳!9个不可思议的 HTML5 Canvas 应用试验

    HTML5 <canvas> 元素给网页中的视觉展示带来了革命性的变化.Canvas 能够实现各种让人惊叹的视觉效果和高效的动画,在这以前是需要 Flash 支持或者 JavaScript ...

  7. WPF 大数据加载过程中的等待效果——圆圈转动

    大家肯定遇到过或将要遇到加载大数据的时候,如果出现长时间的空白等待,一般人的概念会是:难道卡死了? 作为一个懂技术的挨踢技术,即使你明知道数据量太大正在加载,但是假如看不到任何动静,自己觉得还是一种很 ...

  8. 20个漂亮 CSS3 按钮效果及优秀的制作教程

    在这篇文章中,我们编译了一组有用的 CSS3 动画按钮教程和引人注目的实验.正如我们都知道的,CSS3在网页设计方面是最重要和最关键的,可以使您的网站对访客更具吸引力和互动性.你可以学习这些教程和试验 ...

  9. 未来的 Web:九个不可思议的 WebGL 应用试验

    WebGL 技术允许把 JavaScript 和 OpenGL ES 2.0 结合在一起,通过增加 OpenGL ES 2.0 的一个 JavaScript 绑定,WebGL 可以为 HTML5 Ca ...

随机推荐

  1. setTimeout与setInterval的区别浅析

    在网页制作动态效果时,一定会遇到某些需求,要求某段程序等待多时时间后再开始执行,就像在我们的生活中一样,待会儿再开始做一件事.在JavaScript中主要通过定时器实现此类需求,本文将对定时器做一个概 ...

  2. cesium 之三维漫游飞行效果实现篇(附源码下载)

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...

  3. 高通平台如何避免误入FFBM模式

    前面两篇博客分别介绍了通过fastboot和QFIL工具退出FFBM模式的方法.虽然售后的同学可以这么指导用户做恢复,但步骤多操作也麻烦,且属于事后处理,如果大面积高概率地出现,会严重影响用户体验.这 ...

  4. Numpy库的学习(二)

    今天来继续学习一下Numpy库的使用 接着昨天的内容继续 在Numpy中,我们如果想要进行一个判断使用“==” 我们来看下面的代码 vector = np.array([5,10,15,20,25]) ...

  5. 【书摘】一种基于Git的版本管理方案

    本篇摘录自<前端工程化体系设计与实践>一书,笔者认为是一套相对合理的方案,建议团队可以根据实际情况进行调整并增加协作命名规范. master分支--主分支 存储已发布版本的源码,不能在此分 ...

  6. Jar 初步

    前言 jar 是 java 文件中一种文件格式,用于将 .java 文件编译的字节码文件打包成 jar. 给 Java 应用打包 1. 新建一个 java 源文件 package cn.szxy; p ...

  7. Django的URL调度

    1.URLconf (URL configuration):(Django版本1.11.20,其它版本可能各有差异.) 在Django中Python后端与前端URL进行交互,是通过一个名为urlcon ...

  8. 运行SSIS包的六种方式

    注意: 1~5都需要SSIS安装在对应的机器上. 一.直接在Data Tool里运行 右键选择要运行的包,然后直接选择运行包 二.使用SQL Server的Job作业 可以选择:a. File Sys ...

  9. Win Server 2008 r2 with SP2装机过程记录

    就这么一个服务器,整整折腾了将近一个星期,才算是折腾完了,今天趁着服务器激活的空闲,赶紧记录下来,以防下次,或者是再有人跟我一样的悲惨经历: 原版出厂光盘下载地址: http://support1.a ...

  10. Hexo server报错TypeError: Cannot read property 'utcOffset' of null解决方法

    最近刚刚开始使用Hexo,新建了一篇article,运行hexo server时候总是报错Cannot read property 'offset' of null. 最后发现是因为手贱把_confi ...