map>.

xuegao007 2008-06-13 03:03:19
我想这样用map<int, CArray<int, int&>>.
但在insert时提示错误
error C2248: 'CObject::CObject' : cannot access private member declared in class 'CObject'
1> d:\program files\microsoft visual studio 8\vc\atlmfc\include\afx.h(553) : see declaration of 'CObject::CObject'
1> d:\program files\microsoft visual studio 8\vc\atlmfc\include\afx.h(524) : see declaration of 'CObject'

map<int, CArray<int, int&>> m;
typedef pair <CString, CArray<int, int&>> Str_IntAry;
m.insert( Str_IntAry("csdn", ary) );


请大家帮我分析下。
...全文
255 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gob00st 2008-07-01
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 yuzl32 的回复:]
无满意答案结贴 直接对楼主无语..
[/Quote]
yuzl32 2008-06-14
  • 打赏
  • 举报
回复
无满意答案结贴 直接对楼主无语..
yuzl32 2008-06-13
  • 打赏
  • 举报
回复
另外lz既用到mfc静态链接库,又用到c运行时库,可能会出现冲突.
yuzl32 2008-06-13
  • 打赏
  • 举报
回复
看样子map的insert,会复制CArray然后把复制的对象插入map,而CArray没有实现拷贝构造函数和operator=,所以会调用CObject的,而CObject的是private因此出错.
Gob00st 2008-06-13
  • 打赏
  • 举报
回复
1>你要明白map中寸的是副本,所以你想要存的object需要支持拷贝构造函数;
2>而你看看CSND就知道CArray的共有接口中没有贝构造;
所以才会报错。

建议楼主可能的话,在这里使用vector替代CArray。
jieao111 2008-06-13
  • 打赏
  • 举报
回复
没用过CArray
leelittlelong 2008-06-13
  • 打赏
  • 举报
回复
用make_pair
leelittlelong 2008-06-13
  • 打赏
  • 举报
回复
m.insert( Str_IntAry("csdn", ary) );

不能这么用。
Maxwell 2008-06-13
  • 打赏
  • 举报
回复
map <int, CArray <int, int&>> m;
typedef pair <CString, CArray <int, int&>> Str_IntAry;
m.insert( Str_IntAry("csdn", ary) );
pair的类型就跟map不一致。。。

记得CArray在VC6中缺少复制构造函数和赋值运算符重载,不能用在map中。
taodm 2008-06-13
  • 打赏
  • 举报
回复
您既然用map了,那就用vector,别混用CArray了。
xuegao007 2008-06-13
  • 打赏
  • 举报
回复
vs2005控制台下的程序:
#include "stdafx.h"
// map_find.cpp
// compile with: /EHsc
#include <map>
#include <iostream>
#include <afxtempl.h>
using namespace std;

int main( )
{
using namespace std;
typedef pair<int, CArray<int, int> > Int_pInt;

CArray<int, int> ary;
ary.Add( 1 );
ary.Add( 10 );
ary.Add( 100 );
map<int, CArray<int, int> > m;

Int_pInt myint;
myint.first = 1;
myint.second.Copy( ary );

m.insert( myint );


}
编译不过。????????????????
cppscript 2008-06-13
  • 打赏
  • 举报
回复
cannot access private member declared in class 'CObject'
不能访问私有对象
内容概要:本文研究了在通信资源受限与恶意攻击干扰下的孤岛微电网分布式二次控制策略,提出了一种兼具通信效率与攻击弹性的动态事件触发控制方案,旨在实现电压频率的精确恢复与有功无功功率的均衡共享。通过Simulink仿真与Matlab代码实现,系统验证了该策略在显著降低通信频次的同时,能够有效抵御拒绝服务(DoS)等网络攻击,保障微电网在复杂环境下的稳定运行。研究深入探讨了动态事件触发机制的设计、分布式控制算法的弹性优化,并确保系统具备排除芝诺行为的能力,从而全面提升微电网在极端条件下的鲁棒性、可靠性与运行效率。; 适合人群:具备电力系统、自动化或相关领域基础知识,从事微电网、分布式控制、能源系统安全方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于孤岛微电网在遭受通信限制和网络攻击时的二次电压与频率调节;②为高比例新能源接入场景下的微电网提供具备攻击容忍能力的弹性控制解决方案;③支持科研仿真验证与教学演示,推动分布式能源系统安全控制技术的发展。; 阅读建议:建议结合提供的Simulink模型与Matlab代码进行仿真实践,深入理解控制策略的实现细节,并可通过修改攻击模型、通信参数或网络拓扑进行拓展性研究,以全面掌握其弹性机制与优化潜力。
上市公司绿色全要素生产率(Green Total Factor Productivity,简称GTFP)是衡量企业绿色发展和资源配置效率的重要指标,其不仅关注经济效益,还强调环境效益,体现了绿色发展理念。 一、上市公司绿色全要素生产率的介绍 上市公司绿色全要素生产率是衡量企业在实现绿色发展的过程中,如何有效地利用劳动、资本、能源等资源进行生产的综合效率。本分享数据涵盖2500+家上市公司,数据年份为2007-2022年,共46424条样本,含证券代码、年份、绿色全要素生产率、绿色技术效率变化指数、绿色技术进步变化指数。 二、数据指标 绿色全要素生产率 绿色技术效率变化指数 绿色技术进步变化指数 用于衡量企业绿色发展效率的综合指标 反映绿色技术使用效率的变化 衡量绿色技术进步的效果 三、测算方式 企业绿色全要素生产率的测算采用了非径向SBM-ML指数(简称“ML指数”)模型。该模型通过将企业的环境污染、绿色技术进步等因素纳入生产效率评价体系,全面反映了企业在绿色发展方面的整体表现。 具体的测算方式如下: (1)要素投入:以企业员工数作为劳动投入的代理变量,企业固定资产净额作为资本投入的代理变量,企业所在城市的工业用电量根据企业从业人员占城市城镇人员就业比重进行换算作为能源投入的代理变量。 (2)期望产出:以企业的营业收入作为期望产出的代理变量。 (3)非期望产出:将企业从业人员占所在城市城镇人员就业比重与“工业三废”(即工业二氧化硫、工业废水、工业烟粉尘排放量)结合,进行换算,作为非期望产出的代理变量。 四、参考文献 崔立志,孙旺,黄敏敏.新能源示范城市建设对企业绿色全要素生产率的影响研究——基于A股上市公司的实证分析[J].广西财经学院学报,2023,36(01):92-104. 五、数据来源 数据来源于《中国城市统计年鉴》、《中国环境统计年鉴》、

65,213

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧