我有一个类Atom
:复制由索引类型元件从一个矢量到另一个C++
class Atom {
public:
Atom();
string name; string mol_name; string MF; // element, molecule name, movable/frozen
int mol_id;
double m,eps,sig,C=0.0,V=0.0,K=0.0,E=0.0;
int ID;
map <string,double> pos; // equivalent of python FM1.9 "x"
map <string,double> prevpos;
map <string,double> force; // " " F
map <string,double> vel; // v
map <string,double> acc; // a
map <string,double> dip; // dipole
map <string,double> efield; // electric field;
};
并且这种原子atoms
的向量:
vector<Atom> atoms
其中填充有不同的原子( 0,1,2 ...)和相应的变量,例如name
。
我想复制,例如atoms[3]
与另一个载体tmp_atoms
。我想:
std::copy (atoms.begin() + 3, atoms.begin() + 3, tmp_atoms.begin());
无济于事,因为当我尝试访问tmp_atoms[0]
或tmp_atoms[3]
我得到一个分段错误。我的访问尝试是: printf("Make sure tmp_atoms[0] is a thing: %s \n", tmp_atoms[0].name.c_str()); // program seg. faults here
我认为有复制类类型的特殊情况,因为在例如整数向量的情况下这应该是正确的。请协助!
解释downvote? – khaverim
请** [编辑] **你的问题与[mcve]或[SSCCE(Short,Self Contained,Correct Example)](http://sscce.org) – NathanOliver
这就像我能做到的那样。目标=将一个向量元素(它本身就是一个类实例)复制到另一个向量中 – khaverim