set<> 的问题,路过就别错过了.(帮下忙吧)

takile 2007-04-11 11:17:54
我写一个方法..传入一个MD5的值做为参数.(char *fileMD5)
方法的功能是如果set里没有传入那个MD5的值的话就插入一条.有的话就返回true;
是用set的find或count方法吧?

放入一个set<string>里的.如:

set<string> s1;
s1.insert("fsdf"); //这句话就报错了.

然后我用set<char[33]> s1,但编译错了..不是很懂.

麻烦高手帮下忙吧.
...全文
184 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
taodm 2007-04-11
  • 打赏
  • 举报
回复
在我机器上,VC2005express ,没include <string>时出了你现在遇的错。
你自己再认真看看吧。
takile 2007-04-11
  • 打赏
  • 举报
回复
有阿.
我包含了..但用insert这方法就出错了..
taodm 2007-04-11
  • 打赏
  • 举报
回复
呃,你没有#include <string>吧。
takile 2007-04-11
  • 打赏
  • 举报
回复
我要放进set里的是char *fileMD5
如果我不写 set<string> 还有没有其他写法?
set<char[33]> 这样不行的.?(但编译不了)
takile 2007-04-11
  • 打赏
  • 举报
回复
set<string> MD5;
MD5.insert(string(fileMD5));


报以下错误.
-------------------------------------------------------------------------------------

d:\program files\microsoft visual studio 8\vc\include\functional(143) : error C2784: 'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)' : could not deduce template argument for 'const std::_Tree<_Traits> &' from 'const std::string'
d:\program files\microsoft visual studio 8\vc\include\xtree(1372) : see declaration of 'std::operator <'
d:\program files\microsoft visual studio 8\vc\include\functional(142) : while compiling class template member function 'bool std::less<_Ty>::operator ()(const _Ty &,const _Ty &) const'
with
[
_Ty=std::string
]
d:\program files\microsoft visual studio 8\vc\include\set(60) : see reference to class template instantiation 'std::less<_Ty>' being compiled
with
[
_Ty=std::string
]
d:\program files\microsoft visual studio 8\vc\include\xtree(26) : see reference to class template instantiation 'std::_Tset_traits<_Kty,_Pr,_Alloc,_Mfl>' being compiled
with
[
_Kty=std::string,
_Pr=std::less<std::string>,
_Alloc=std::allocator<std::string>,
_Mfl=false
]
d:\program files\microsoft visual studio 8\vc\include\xtree(68) : see reference to class template instantiation 'std::_Tree_nod<_Traits>' being compiled
with
[
_Traits=std::_Tset_traits<std::string,std::less<std::string>,std::allocator<std::string>,false>
]
d:\program files\microsoft visual studio 8\vc\include\xtree(94) : see reference to class template instantiation 'std::_Tree_ptr<_Traits>' being compiled
with
[
_Traits=std::_Tset_traits<std::string,std::less<std::string>,std::allocator<std::string>,false>
]
d:\program files\microsoft visual studio 8\vc\include\xtree(112) : see reference to class template instantiation 'std::_Tree_val<_Traits>' being compiled
with
[
_Traits=std::_Tset_traits<std::string,std::less<std::string>,std::allocator<std::string>,false>
]
d:\program files\microsoft visual studio 8\vc\include\set(69) : see reference to class template instantiation 'std::_Tree<_Traits>' being compiled
with
[
_Traits=std::_Tset_traits<std::string,std::less<std::string>,std::allocator<std::string>,false>
]
d:\avra项目\avra\avra\testmd5.cpp(9) : see reference to class template instantiation 'std::set<_Kty>' being compiled
with
[
_Kty=std::string
]
d:\program files\microsoft visual studio 8\vc\include\functional(143) : error C2784: 'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)' : could not deduce template argument for 'const std::_Tree<_Traits> &' from 'const std::string'
d:\program files\microsoft visual studio 8\vc\include\xtree(1372) : see declaration of 'std::operator <'
d:\program files\microsoft visual studio 8\vc\include\functional(143) : error C2784: 'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)' : could not deduce template argument for 'const std::_Tree<_Traits> &' from 'const std::string'
d:\program files\microsoft visual studio 8\vc\include\xtree(1372) : see declaration of 'std::operator <'
d:\program files\microsoft visual studio 8\vc\include\functional(143) : error C2784: 'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)' : could not deduce template argument for 'const std::_Tree<_Traits> &' from 'const std::string'
d:\program files\microsoft visual studio 8\vc\include\xtree(1372) : see declaration of 'std::operator <'
d:\program files\microsoft visual studio 8\vc\include\functional(143) : error C2784: 'bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)' : could not deduce template argument for 'const std::reverse_iterator<_RanIt> &' from 'const std::string'
d:\program files\microsoft visual studio 8\vc\include\xutility(1842) : see declaration of 'std::operator <'
d:\program files\microsoft visual studio 8\vc\include\functional(143) : error C2784: 'bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)' : could not deduce template argument for 'const std::reverse_iterator<_RanIt> &' from 'const std::string'
d:\program files\microsoft visual studio 8\vc\include\xutility(1842) : see declaration of 'std::operator <'
d:\program files\microsoft visual studio 8\vc\include\functional(143) : error C2784: 'bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)' : could not deduce template argument for 'const std::reverse_iterator<_RanIt> &' from 'const std::string'
d:\program files\microsoft visual studio 8\vc\include\xutility(1842) : see declaration of 'std::operator <'
d:\program files\microsoft visual studio 8\vc\include\functional(143) : error C2784: 'bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)' : could not deduce template argument for 'const std::reverse_iterator<_RanIt> &' from 'const std::string'
d:\program files\microsoft visual studio 8\vc\include\xutility(1842) : see declaration of 'std::operator <'
d:\program files\microsoft visual studio 8\vc\include\functional(143) : error C2784: 'bool std::operator <(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)' : could not deduce template argument for 'const std::pair<_Ty1,_Ty2> &' from 'const std::string'
d:\program files\microsoft visual studio 8\vc\include\utility(76) : see declaration of 'std::operator <'
d:\program files\microsoft visual studio 8\vc\include\functional(143) : error C2784: 'bool std::operator <(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)' : could not deduce template argument for 'const std::pair<_Ty1,_Ty2> &' from 'const std::string'
d:\program files\microsoft visual studio 8\vc\include\utility(76) : see declaration of 'std::operator <'
d:\program files\microsoft visual studio 8\vc\include\functional(143) : error C2784: 'bool std::operator <(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)' : could not deduce template argument for 'const std::pair<_Ty1,_Ty2> &' from 'const std::string'
d:\program files\microsoft visual studio 8\vc\include\utility(76) : see declaration of 'std::operator <'
d:\program files\microsoft visual studio 8\vc\include\functional(143) : error C2784: 'bool std::operator <(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)' : could not deduce template argument for 'const std::pair<_Ty1,_Ty2> &' from 'const std::string'
d:\program files\microsoft visual studio 8\vc\include\utility(76) : see declaration of 'std::operator <'
d:\program files\microsoft visual studio 8\vc\include\functional(143) : error C2676: binary '<' : 'const std::string' does not define this operator or a conversion to a type acceptable to the predefined operator
taodm 2007-04-11
  • 打赏
  • 举报
回复
贴出错信息。
takile 2007-04-11
  • 打赏
  • 举报
回复
我用的是vs2005的..
s1.insert(string("fsdf")); 这句好像不行的.

我在方法里是这样写也不行的.
string tmp=fileMD5; //fileMD5为传入的char *fileMD5
s1.insert(tmp); //这句就报错了.
fadics 2007-04-11
  • 打赏
  • 举报
回复
我试了,第一种方法没出错啊,正常执行了
taodm 2007-04-11
  • 打赏
  • 举报
回复
你用的VC6?
s1.insert(string("fsdf"));
takile 2007-04-11
  • 打赏
  • 举报
回复
顶上阿....

takile 2007-04-11
  • 打赏
  • 举报
回复
晕了..

可以了...

#include<string.h>
#include<string>

这两个有什么分别阿.?我刚才包含的是string.h,所以就错了.

taodm 谢谢了.给分.
sirguan 2007-04-11
  • 打赏
  • 举报
回复
看看下面的语句你能编译么?
string s = "test";
set< int > si;
si.insert( 1 );
内容概要:本文研究了一种针对四机并联孤岛微电网的协同控制策略,通过集成DoS攻击模拟、分布式二次控制、下垂控制与事件触发式负荷控制,旨在实现微电网在遭受网络安全威胁等异常工况下的电压与频率恢复以及有功/无功功率的精确共享分配。基于Simulink平台构建了完整的微电网仿真系统,包含多台分布式发电单元(DG),采用下垂控制实现无需通信的功率自主分配,并引入分布式二次控制以补偿由下垂特性引起的电压和频率偏差,从而提升电能质量。为进一步降低通信负担并提高系统效率,设计了事件触发机制,仅在必要时刻进行信息交互。研究重点在于多时间尺度下的协同控制架构设计,全面验证了该策略在正常运行与遭受DoS攻击等扰动情形下的稳定性、鲁棒性与恢复能力。; 适合人群:具备电力系统、自动控制理论基础,熟悉Simulink/Matlab仿真工具,从事微电网、分布式能源、智能电网及相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究孤岛微电网中电压频率恢复与功率均分的多时间尺度协同控制机制;②分析DoS网络攻击对微电网控制性能的影响及其应对策略;③掌握事件触发控制在减少通信开销中的实际应用方法;④复现并拓展具备网络安全防护能力的高级微电网控制算法仿真模型。; 阅读建议:此资源以Simulink仿真实现为核心,建议读者结合现代控制理论与网络安全知识,逐步搭建系统模型,重点关注控制器参数整定、事件触发阈值设计及DoS攻击注入方式,通过对比实验深入理解控制策略的有效性与鲁棒性。

65,213

社区成员

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

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