C++中对包含string成员的结构体变量初始化解决方法
C++中对包含string成员的结构体变量初始化
我使用的VC++6.0,但我的程序在编译时出错,请高手指点怎样修改才能使用包含
string成员的结构体变量,并对其初始化。下面是我的程序:
#include <iostream>
#include <string>
using namespace std;
struct Person
{
string name;
int count;
};
int main()
{
Person leader[3]={{"li",0},{"zhang",0},{"fun",0}};
int i,j;
string leader_name;
for(i=0;i<10;i++)
{
cin>>leader_name;
for(j=0;j<3;j++)
if(leader_name==leader[j].name) leader[j].count++;
}
cout<<endl;
for(i=0;i<3;i++)
{
cout<<leader[i].name<<':'<<leader[i].count<<endl;
}
return 0;
}
出错信息是source.cpp(11) : error C2440: 'initializing' : cannot convert from 'char [3]' to 'struct Person'
source.cpp(11) : error C2440: 'initializing' : cannot convert from 'const int' to 'struct Person'
请高人指点一下,帮忙改改
------解决方案--------------------
添构造函数
Person(const char* pszString, int iCount)
{
name = pszString;
count = iCount;
}
数组显式初始化
Person leader[3]={Person("li",0),Person("zhang",0),Person("fun",0)};
------解决方案--------------------
代码是正确的,只是vc6太古老了。
vs2003以后版本都可以直接编译通过lz的代码
我使用的VC++6.0,但我的程序在编译时出错,请高手指点怎样修改才能使用包含
string成员的结构体变量,并对其初始化。下面是我的程序:
#include <iostream>
#include <string>
using namespace std;
struct Person
{
string name;
int count;
};
int main()
{
Person leader[3]={{"li",0},{"zhang",0},{"fun",0}};
int i,j;
string leader_name;
for(i=0;i<10;i++)
{
cin>>leader_name;
for(j=0;j<3;j++)
if(leader_name==leader[j].name) leader[j].count++;
}
cout<<endl;
for(i=0;i<3;i++)
{
cout<<leader[i].name<<':'<<leader[i].count<<endl;
}
return 0;
}
出错信息是source.cpp(11) : error C2440: 'initializing' : cannot convert from 'char [3]' to 'struct Person'
source.cpp(11) : error C2440: 'initializing' : cannot convert from 'const int' to 'struct Person'
请高人指点一下,帮忙改改
string
c++
------解决方案--------------------
添构造函数
Person(const char* pszString, int iCount)
{
name = pszString;
count = iCount;
}
数组显式初始化
Person leader[3]={Person("li",0),Person("zhang",0),Person("fun",0)};
------解决方案--------------------
代码是正确的,只是vc6太古老了。
vs2003以后版本都可以直接编译通过lz的代码