我宣布这样的结构:推到结构的载体,其向量的元素
struct Point{
double x,y;
Point(){}
Point(double xx,double yy): x(xx),y(yy){}
};
而且我试图填补这样的载体:
vector<Point> s(1);
Point tmp(1,2);
s[0]=tmp;
s.push_back(s[0]);
不幸,当我显示s [1]的内容时,这样做会给我一个错误的答案,但s.push_back((Point)s[0])
会导致期望的答案(例如s [0]的副本)。
是什么 s.push_back(s[0])
和s.push_back((Point)s[0])
,说明这一点differennce之间的区别?
是否有任何自动类型转换或引擎盖下的东西?通过const引用(和由右值引用的其它过载)
's.push_back((Point [0]))'没有意义,'Point'是一种类型。 – Borgleader
什么错误/正确的答案是什么? – Svalorzen
'vector s(2,Point(1,2))'会好得多。 –
DimChtz