| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 317 人关注过本帖
标题:[求助]求助一个vector的问题
收藏  订阅  推荐  打印 
chowchen
Rank: 1
等级:新手上路
帖子:5
积分:150
注册:2006-5-19
[求助]求助一个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-5-19 09:07
wfpb
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:29
帖子:2188
积分:22230
注册:2006-4-2

以下是引用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-5-19 10:04
chowchen
Rank: 1
等级:新手上路
帖子:5
积分:150
注册:2006-5-19

我编了一个默认的构造函数,好像还不行
2006-5-19 10:39
wfpb
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:29
帖子:2188
积分:22230
注册:2006-4-2

你是说什么不行?你又不说具体一点,我在我机器上编译过了的,通过了啊

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

编译是可以的,但是调试时结果不对
感谢wfpb的帮助
2006-5-19 14:25
wfpb
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:29
帖子:2188
积分:22230
注册:2006-4-2

你的源程序里需要达到的功能里哪里出现错误?

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

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

2006-5-20 20:59
wfpb
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:29
帖子:2188
积分:22230
注册:2006-4-2

没错啊!输出的结果是: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-5-20 21:08
chowchen
Rank: 1
等级:新手上路
帖子:5
积分:150
注册:2006-5-19

wfpb,你把 B d 注释掉了,如果这这句不注释了?
2006-5-20 21:20
wfpb
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:29
帖子:2188
积分:22230
注册:2006-4-2

肯定没影响列,你的class完全是个空架子

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-5-20 21:42
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.081183 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved