如何使用复印功能的载体?

我想从一个向量复制结构集合在MFC另一个向量。

我的矢量结构

typedef vector<CLog *> CLogData; typedef vector<CLog * > tLogData;

如何将TYPE堵塞*从CLogData复制到tLogData?

问候,

KARTHIK

--------------解决方案-------------

如果你想的浅表副本CLog*指针,使用MacGucky给出了答案。 如果你需要的实际数据的深层副本CLog*指针指向,你需要做手工在一个循环:

CLogData cl;
tLogData tl;
// fill cl
for(size_t i = 0; i < cl.size(); ++i){
// invokes the copy ctor of CLog
CLog* plog = new CLog(*cl[i]);
tl.push_back(plog);
}

这两种类型是相同的。 所以,你可以这样做

CLogData cl;
tLogData tl;
// todo: fill cl

tl = cl;

要将一个载体复制到另一个可以使用std::copy在两个方面:

1)调整目标向量和迭代器复制:

tlogData.clear();
tlogData.resize(CLogData.size());
std::copy(CLogData.begin(), CLogData.end(), tLogData.begin());

2)使用back_inserter:

std::copy(CLogData.begin(), CLogData.end(), std::back_inserter(tLogData));

但copys只从一个载体向另一个指针 - 指针直达在两种载体中的相同对象!


如果你想真正复制的对象,你必须创建新的:

size_t n = CLogData.size();
for (size_t i = 0; i < n; ++i) {
tLogData.push_back(new CLog(*CLogData[i]));
}

这只有CLog有一个拷贝构造函数。

分类:C# 时间:2012-01-01 人气:0
本文关键词: MFC,C#,VISUAL C ++
分享到:

相关文章

  • 良好的资源学习BDD,TDD(红宝石,C#,JavaScript的) 2014-08-01

    什么是学习BDD和TDD(红宝石,C#,JavaScript)的良好资源. 什么是使用目前的良好的框架? --------------解决方案------------- 看到 我为什么要练习测试驱动开发,我应该如何开始呢? 开始TDD - 挑战? 解决方案? 建议? 良好的C#单元测试的书 介绍BDD 路径学习BDD的Ruby on Rails的是什么? 茉莉花 Hanselminutes - 了解BDD和NSpec 我真的不能用在这个问题上过多的权力说话,也没有将我说话赋予了更大的活力如何st

  • 移植python3 CSV模块,C#,我应该用什么牌为我的模块? 2012-03-22

    我已经移植python3 CSV模块,C#,我可以使用什么许可证为我的模块? 我应该分发我的模块? 我应该把PSF的版权在我模块的每个头? 谢谢 --------------解决方案------------- 你需要缴纳一定的版权律师来告诉你. 但我的猜测是,你需要使用PSF许可证. 需要注意的是PSF没有版权的Python源代码. 他们程序员做版权如何转化为你做一个C#端口事只有版权专家也说不清楚. 还要注意,很可能改变因国. 版权所有很烂.

  • 为什么不把所有的括号内联C ++,C#,Java和JavaScript等? 2012-12-26

    所有的约定在那里为C ++,C#,Java等定位括号,我不认为我曾经见过有人试图提出这样的东西: public void SomeMethod(int someInput, string someOtherInput) { if (someInput > 5) { var addedNumber = someInput + 5; var subtractedNumber = someInput - 5; } else { var addedNumber = someInput + 10; var

  • jQuery选择器:$('#ID1,ID2#,#ID3“)与$('1X班”),这是更快? 2013-01-22

    展望之间$选择性能('#ID1,ID2#,#ID3")与$('1X类"). 这是更快? --------------解决方案------------- 貌似.class正在更快地为这种情况. jQuery的可能不会去了getElementById路线. Chrome和Safari都可能被优化与getElementsByClassName . 测试@ http://jsfiddle.net/mGqyH/4/ 铬 Safari浏览器 火狐 用文件(修改) http://www.w3.org

  • 良好的学习材料,C#,JavaScript的,PHP? 2014-07-18

    我是一个精通C ++ / Qt的编码器,只是现在工作过的桌面项目为止. 我想我的知识基础扩展到网络领域. 在这方面,可有些人认为良好的阅读材料,C#,JavaScript和PHP? 并没有任何标准,为这些语言,因为是C,C ++就像ANSI C,C99,C ++ 0x中等等. --------------解决方案------------- 对于PHP,我会推荐这三本书的方法,PHP Web开发是相当严格的,可能实际用于建设小型介质(或许大)大型项目. 他们是不是真的意味着初学者,但在C ++ /

  • 在相对或绝对的任何编程语言(C ++,C#,Java的,C)的函数声明最后的内存地址? 2014-12-04

    在任何编程语言(C ++,C#,Java和C ...)相对或绝对的声明函数的最终内存地址? (我不要求的机器代码语言小号相对或绝对寻址模式) (我会说这是相对的,但我需要专家的评论的话),如果它是相对的,这意味着无论我们在哪里调用函数,该函数将被复制并投入基于程序计数器位置的堆栈. 因此,两个线程调用同时相同的功能,它们将不会相互影响,如果它们不共享相同的变量. 如果是绝对的,这意味着两个线程调用相同的功能,它们将进入同一个地址!!(它依赖于静态的还是非静态函数)此外,每次我们创建一个类的对象,

  • 再次引用SHELL32,C#的Visual Studio 2013-04-05

    嗯. 好了重新审视的PInvoke后,我敢肯定,我不太明白: - /(刚才问这个问题) 让我说明我需要处理的代码. 它的工作原理,当我使用"添加引用 - > COM - >微软壳牌控制和Automatation"......但遗憾的是它把我的项目的参考,看起来像这样:"C:\用户\添\文档\ Visual Studio的2008 \项目\荣\ FileWing \ OBJ \调试\ Interop.Shell32.dll" 我挖,虽然回收站,并寻求,我想

  • 应用程序挂起只有当断点被触发,.NET,C#,Visual Studio中 2014-08-01

    我重构我的应用程序前一阵子,从那以后我一直在使用Visual Studio 2010的调试问题. 我的应用程序的工作虽然没有调试预期(通过应用程序没有步进.一个附加的调试器不会造成任何问题). 然而,当一个断点被触发,我开始逐步执​​行应用程序,Visual Studio和应用最多3-4个步骤后都挂起. 为了更加强调这一点:这与我的客户运作良好,无论我从Visual Studio启动或独立的 - 只要不破发点被触发. 不要紧,在代码中我把破发点. IDE:Visual Studio 2010中的

  • 我的Windows服务应用程序不运行时调用onStart(ODBC,C#,Visual Studio 2008中) 2012-01-23

    我刚写了一个程序作为Windows服务应用程序,运行GasMeterMonitoring; 但是当我在我的本地计算机上启动该应用程序,没有任何反应都没有. 该计划应该抓住从一个MS Access数据库中的数据在其他计算机上然后将这些数据插入到Oracle数据库. 我不能确定为什么这是行不通的. 任何想法什么会导致这种不正常运行? 我创建了非常类似于这样一个服务之前的工作就好了. 所有的数据被位于一台机器,其中,在此代码有两个单独的机器上的差异. 另外我使用这个代码计时器. 要建立我的我用下面的M

  • StringBuilder的命名空间,C#,Visual Studio 2010中 2012-05-04

    做什么命名空间StringBuilder属于哪一种? 我输入: using System.Text.StringBuilder; 但是,智能感知,不会让我打StringBuilder . --------------解决方案------------- 它很容易确定其命名空间.NET类的生活. 你有两种方式: 寻找有趣的类MSDN和Inheritance Hierarchy部分,您可以看到完整的类名. 完整的类名称意味着,之前类的名称将是它的命名空间. 对于StringBuilder的完整的类名称

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 4.711 (s). 10 q(s)