新微赢技术网

标题: [求助]求助一个vector的问题 [打印本页]

作者: ︶ㄣ飘爱あ恋    时间: 2009-11-3 02:08
标题: [求助]求助一个vector的问题
在使用vector时,std::vector<T>,如果T是一个自定义的类型,如自定义的类,则在使用
push_back时总不能得到正确的负值。
class B
{public:

};
class C
{
public:
int c;
int e;
B d;
public:
C(int a1,int a2) {c=a1;e=a2;};
~C();
};

main{
std::vector<C> c;
c.push_back(C(1,2)); //这句老出问题,不知道什么原因,好像不能将一个值送入vector
}

请各位大虾指点一下
作者: 敬你永远遗忘    时间: 2009-11-3 02:08
以下是引用chowchen在2006-5-19 9:07:00的发言:
/*在使用vector时,std::vector<T>,如果T是一个自定义的类型,如自定义的类,则在使用
push_back时总不能得到正确的负值。*/
class B
{public:

};
class C
{
public:
int c;
int e;
B d;
public:
C(int a1,int a2) {c=a1;e=a2;}//;
/*建议写个默认构造函数,因为你已经定义了构造函数,系统不会分配默认构造函数了,但是你声明了一个自定义类型容器*/
~C(){}//;
};

main(){
std::vector<C> c;
c.push_back(C(1,2));
//这句老出问题,不知道什么原因,好像不能将一个值送入vector
}

请各位大虾指点一下
作者: 炫夜    时间: 2009-11-3 02:08
我编了一个默认的构造函数,好像还不行
作者: ミつン戀ン    时间: 2009-11-3 02:08
你是说什么不行?你又不说具体一点,我在我机器上编译过了的,通过了啊
作者: 天语悠悠    时间: 2009-11-3 02:08
编译是可以的,但是调试时结果不对
感谢wfpb的帮助
作者: ︶ㄣ帅々︷`    时间: 2009-11-3 02:08
你的源程序里需要达到的功能里哪里出现错误?
作者: QQ賊aiq嘿    时间: 2009-11-3 02:08
就是把只写入c中,怎么都写不进去,c中都是-842150451
作者: 日-出    时间: 2009-11-3 02:08
没错啊!输出的结果是:1 2
#include<iostream>
#include<vector>
using namespace std;
/*class B
{public:
};*/
class C
{
public:
int c;
int e;
//B d;
public:
C(int a1,int a2) {c=a1;e=a2;}//;
/*建议写个默认构造函数,因为你已经定义了构造函数,系统不会分配默认构造函数了,但是你声明了一个自定义类型容器*/
C(){}
void display(){cout<<c<<" "<<e;}
~C(){}//;
};
int main(){
std::vector<C> c;
vector<C>::iterator Item;
c.push_back(C(1,2));
Item=c.begin();
Item->display();
//这句老出问题,不知道什么原因,好像不能将一个值送入vector
system("pause");
return 0;
}
作者: 小嘛怪    时间: 2009-11-3 02:08
wfpb,你把 B d 注释掉了,如果这这句不注释了?
作者: 鈊賥wo埋單    时间: 2009-11-3 02:08
肯定没影响列,你的class完全是个空架子




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2