Win32 应用程序中使用 vector报错

sunlau29 2007-10-28 12:45:44
最近在用Win32 应用程序写一个OpenGL程序,其中在使用vector时遇到了问题,主要代码如下:
vector<CDesk> DeskVec;
CDesk Desk2;
DeskVec.push_back(Desk2);

报错位置是 push_back那行,报错内容是

f:\program files\microsoft visual studio\vc98\include\xutility(39) : error C2582: 'CDesk' : 'operator =' function is unavailable
f:\program files\microsoft visual studio\vc98\include\vector(170) : see reference to function template instantiation 'void __cdecl std::fill(class CDesk *,class CDesk *,const class CDesk &)' being compiled
f:\program files\microsoft visual studio\vc98\include\xutility(25) : error C2582: 'CDesk' : 'operator =' function is unavailable
f:\program files\microsoft visual studio\vc98\include\vector(174) : see reference to function template instantiation 'class CDesk *__cdecl std::copy_backward(class CDesk *,class CDesk *,class CDesk *)' being compiled
...全文
347 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunlau29 2007-11-15
  • 打赏
  • 举报
回复
该重载都重载了,还是没有解决,要不我提供QQ号,有意帮忙我的我把程序发给你们,然后你们看看有什么问题。我的QQ号是260688447
ryfdizuo 2007-11-15
  • 打赏
  • 举报
回复
宁多不少啊,哈哈~~~
wfwsm 2007-11-15
  • 打赏
  • 举报
回复
// copy structor
CDesk::CDesk( const CDesk & desk )
{
//do something
}
bool operator==( const CDesk & desk )
{
//do something
}
CDesk & operator = ( const CDesk & desk )
{
//do thing
return *this;
}
c154649474 2007-11-15
  • 打赏
  • 举报
回复
拷贝构造函数和重载=操作符了没
sunlau29 2007-11-15
  • 打赏
  • 举报
回复
重载了 赋值操作符之后,还是报错,这次错误的内容是
--------------------Configuration: MG2 - Win32 Debug--------------------
Compiling...
InitGL.cpp
f:\program files\microsoft visual studio\vc98\include\xutility(39) : error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'const class CDesk' (or there is no acceptable conversion)
f:\program files\microsoft visual studio\vc98\include\vector(170) : see reference to function template instantiation 'void __cdecl std::fill(class CDesk *,class CDesk *,const class CDesk &)' being compiled
Error executing cl.exe.

MG2.exe - 1 error(s), 0 warning(s)
johndiyang 2007-10-28
  • 打赏
  • 举报
回复
看信息像是CDesk没有重载 =
飞哥 2007-10-28
  • 打赏
  • 举报
回复
在什么情况下,使用vector需要重载赋值操作符?

比如如果容器是有序的,你就要重载比较符号 <
比如如果容器使用某些查找算法时,可能需要重载==,find,迭代器使用时忘了要不要重载== !=之类的东东了
=好一般你用到才需要重载
sunlau29 2007-10-28
  • 打赏
  • 举报
回复
在什么情况下,使用vector需要重载赋值操作符?
sunlau29 2007-10-28
  • 打赏
  • 举报
回复
在我的CDesk类里面有一个成员函数是void GetInfo(Info &l_info); 里面的Info是一个struct。 如果要重载,如何重载?
花花呀123456 2007-10-28
  • 打赏
  • 举报
回复
又学到了一个东东,哈哈
thecorr 2007-10-28
  • 打赏
  • 举报
回复
重载? 跟着接分才是王道
飞哥 2007-10-28
  • 打赏
  • 举报
回复
用自定义class做stl参数
一般都要重载 == = < 之类的东东

你的,明白?
内容概要:本文围绕“基于交流潮流的电力系统多元件N-k故障模型研究”展开,深入探讨了利用Matlab代码实现电力系统在发生多个关键元件同时故障(即N-k故障)情况下的交流潮流计算与故障分析方法。该模型不仅考虑了传统潮流方程的非线性特性,还引入了故障约束条件,能够精确模拟复杂多样的故障场景,如短路、断线等,进而评估电网在极端运行条件下的稳态与动态行为。研究通过构建典型电力系统算例,验证了所提模型在故障筛选、脆弱性识别及系统恢复策略制定方面的有效性,为电力系统安全评估、风险预警和防御体系构建提供了坚实的理论依据和技术支撑。此外,模型具备良好的扩展性,可进一步应用于连锁故障传播分析、恶意攻击模拟等高级安全分析领域。; 适合人群:具备电力系统分析基础理论知识和Matlab编程能力的高校研究生、科研院所研究人员以及电力公司从事电网规划、运行与安全管理的技术人员,特别适用于开展电力系统安全稳定、可靠性评估与应急响应机制研究的专业人士。; 使用场景及目标:①开展电力系统在多重故障条件下的交流潮流仿真,评估系统电压稳定性、线路过载风险及负荷损失程度;②识别电网的关键薄弱环节与脆弱元件,支撑电网加固改造与防御资源配置;③用于科研项目的故障场景建模与算法验证,或作为教学案例帮助学生理解复杂故障下的系统响应机制。; 阅读建议:此资源以Matlab代码为核心实现手段,建议读者结合理论推导与代码实现进行对照学习,重点关注故障建模过程雅可比矩阵的修正方法、故障注入方式及收敛性处理策略,建议在仿真逐步增加故障数量与复杂度,深入理解N-k故障对系统潮流分布的影响规律,并尝试将其拓展至含新能源接入的现代电力系统场景进行验证与优化。

65,210

社区成员

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

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