vc6下怎么初始化含有string的struct

arabicsara 2010-10-01 07:35:49
#include <string>
#include <vector>
#include <iostream>

using namespace std;

typedef struct edit
{
string strLabel;
string strText;
string strInfo;
int type;
int len;
bool must;
}stEdit;

int main()
{
string strName;
vector<stEdit> vedit;
//stEdit s={
stEdit s[]={{string("User Name:"),strName,string("len [1-20] letters/space"),0,20,1},
{string("User Name:"),strName,string("len [1-20] letters/space"),0,20,1},
};
int i;
for(i=0;i<2;++i)
vedit.push_back(s[i]);//有没有函数一次性push_back一个结构体数组?而不用一个一个push_back了
cout<<vedit.at(0).strLabel.c_str()<<endl;

return 1;
}
以上代码在vs2010正常,但在vc6就有错误.
请问在vc6下怎么初始化含有string的struct.没办法,项目要求用VC6开发的
...全文
250 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lie1213 2010-10-02
  • 打赏
  • 举报
回复
不知道对不对 struct是特殊的类,所以可以带有类似构造函数的函数,在C++标准化中如此的说
老邓 2010-10-02
  • 打赏
  • 举报
回复
1,3楼说的很清楚了。
小驴 2010-10-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 keyixuexi 的回复:]
vc6.0队stl支持不好?
还没感觉到,stl水平低了。杯具~
[/Quote]

同杯具
Qyee 2010-10-01
  • 打赏
  • 举报
回复
vc6.0队stl支持不好?
还没感觉到,stl水平低了。杯具~
cattycat 2010-10-01
  • 打赏
  • 举报
回复
vc6的bug吧,对stl等支持不好。
可以直接初始化,vector<stEdit> vedit(s,s+2);
arabicsara 2010-10-01
  • 打赏
  • 举报
回复
那这个呢:
for(i=0;i<2;++i)
vedit.push_back(s[i]);//有没有函数一次性push_back一个结构体数组?而不用一个一个push_back了
AAA20090987 2010-10-01
  • 打赏
  • 举报
回复
这是VC6的BUG,我也找不到解决方法,
只好果断地抛弃VC6了

64,660

社区成员

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

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