标题:[求助]求助一个vector的问题
只看楼主
chowchen
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-5-19
 问题点数:0 回复次数:9 
[求助]求助一个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
}

请各位大虾指点一下
搜索更多相关主题的帖子: public int vector std push 
2006-05-19 09:07
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 
以下是引用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
}

请各位大虾指点一下


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-19 10:04
chowchen
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-5-19
得分:0 
我编了一个默认的构造函数,好像还不行
2006-05-19 10:39
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 
你是说什么不行?你又不说具体一点,我在我机器上编译过了的,通过了啊

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-19 10:44
chowchen
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-5-19
得分:0 
编译是可以的,但是调试时结果不对
感谢wfpb的帮助
2006-05-19 14:25
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 
你的源程序里需要达到的功能里哪里出现错误?

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-19 19:50
chowchen
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-5-19
得分:0 

就是把只写入c中,怎么都写不进去,c中都是-842150451

2006-05-20 20:59
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 

没错啊!输出的结果是: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;
}


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-20 21:08
chowchen
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-5-19
得分:0 
wfpb,你把 B d 注释掉了,如果这这句不注释了?
2006-05-20 21:20
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 
肯定没影响列,你的class完全是个空架子

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-20 21:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-65450-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.257803 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved