C++里的push_back函数对对象怎么操作?

puch_back对普通类型变量的操作我看懂了,比如puch_back(5)如果是vector<int>的话就是在容器底部插入一个数值为5的元素,可是如果是类呢?比如我有... puch_back对普通类型变量的操作我看懂了,比如puch_back(5)如果是vector<int>的话就是在容器底部插入一个数值为5的元素,可是如果是类呢?比如我有一个
class A
{
int x;

double y;

char c;

float d;

};
这么一个类,那我要用push_back要怎么写?比如我要插入一个int为5,double为6.0,char为'a',float为3.0的一个A类型的元素,那应该怎么写呢?麻烦高手解答下,谢谢。
展开
 我来答
叶鸣布琪睿
2019-07-11 · TA获得超过1178个赞
知道小有建树答主
回答量:1655
采纳率:100%
帮助的人:7.7万
展开全部
那就生成一个对象,然后给对象赋值,然后再push_back这个对象就可以了。
次元破坏者986b1
2013-04-10 · TA获得超过165个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:112万
展开全部
A a;
a.x = 5;
a.y = 6.0;
a.c = 'a';
a.d = 3.0;
vector<A> vec_a;
vec_a.push_back(a);
另外也可以用指针
A* pa = new A;
pa.x = 5;
pa.y = 6.0;
pa.c = 'a';
pa.d = 3.0;
vector<A*> vec_a;
vec_a.push_back(pa);
/*其他代码*/
/*注意释放指针,并避免重复释放*/
for (size_t i = 0; i < vec_a.size(); ++i)
{
delete vec_a[i];
vec_a[i] = NULL;
}

vec_a.clear()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
推荐于2018-03-23 · TA获得超过3954个赞
知道大有可为答主
回答量:1636
采纳率:77%
帮助的人:1236万
展开全部
在A类中添加一个构造函数初始化数据成员。在push_back(A(5, 6.0, 'a', 3.0));

class A {
char c;

int i;

float f;

double d;

public:
A(char cc, int ii, float ff, double dd) {

c = cc;

i = ii;

f = ff;

d = dd;

}
};

int main() {
std::vector<A> v;

v.push_back(A('a', 5, 3.0f, 6.0)); //A('a', 5, 3.0f, 6.0) 作用是调用构造函数来建立一个 //临时对象,这是临时对 象创建语法。

}

这样写简单点:
#include <iostream>
#include <vector>
class A {
char c = 'a';
int i = 5;
float f = 3.0;
double d = 6.0;
public:
A() = default;
A(char cc, int ii, float ff, double dd) : c(cc),
i(ii), f(ff), d(dd) {}
operator int() const {
return i;
}
operator char() const {
return c;
}
operator float() const {
return f;
}
operator double() const {
return d;
}
};
int main() {
std::vector<A> v;
v.push_back(A());
std::cout << char(v[0]) << std::endl;
std::cout << int(v[0]) << std::endl;
std::cout << float(v[0]) << std::endl;
std::cout << double(v[0]) << std::endl;
}

此段代码的运行结果是:
a
5
3
6
来自:求助得到的回答
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式