변경합니다. 구조의 벡터가 있습니다. 임시 구조를 사용하면 구조의 벡터에 push_back을 수행합니다. 그러나 첫 번째 멤버의 cnt
을 확인하면 변경된 것으로 나타납니다. 어떤 생각?가치는 내가 이상한 문제가 예기치 않게
struct Vector
{
float *dim;
Vector()
{
dim = new float [3];
}
};
struct Face
{
float an_N, an_P;
int P, N;
Vector Af;
float Ad;
Vector cnt;
float ifac;
float mf;
};
std::vector <Face> face;
Face temp_face;
for (;;)
{
temp_face.cnt.dim[0] = 0.f;
temp_face.cnt.dim[1] = 0.f;
temp_face.cnt.dim[2] = 0.f;
for (int q=0; q<n_vtx_2D; ++q)
{
temp_face.cnt = temp_face.cnt + pt[vtx[q]]/n_vtx_2D;
}
face.push_back(temp_face);
}
std::cout << face[0].cnt.dim[0] << std::endl;
출력
0.25
0
매번 나는에 대한 루프의 새로운'temp_face'를 작성해야합니까? – Shibli
@Shibli, no. 'Vector'를 고쳐야합니다. 당신이 말한대로 – hmjd
나는 벡터를 고정 내가 여전히 근본적인 문제를 이해하지 않지만했다. 어쨌든 대단히 감사합니다! – Shibli