플로트 [6] 유형이고 baseForce 및 basePos가 벡터 유형 인C++ 벡터 조작 최적화
을 복사하여 붙여 넣기 만하고 SlaveForce 및 SlavePos를 올바르게 사용해야하는 것을 피하기 위해 아래의 코드를 최적화하려고합니다.typedef struct _NodeCoord
{
float coords[6];
} NodeCoord;
int main()
{
...
memcpy(tempNodeCoord.coords, SlaveForce, 6*sizeof(float));
baseForce.push_back(tempNodeCoord);
memcpy(tempNodeCoord.coords, SlavePos, 6*sizeof(float));
basePos.push_back(tempNodeCoord);
...
}
일부 테스트 코드를 시도했습니다. 이것이 내가 달성하고 싶은의 라인을 따라하는 동안
std::vector<NodeCoord> tallon;
NodeCoord m;
memset(m.coords, 0, sizeof(m.coords));
tallon.push_back(m);
,하지만 작동하지 않습니다 : 만이 작동하는 것처럼
std::vector<float[6]> ed;
float e[6];
tallon.push_back(e);
나는 또한 "이 떠 타입 정의 작성 시도 [6 ] 내 취향;" main 함수 앞에 줄이 있지만 잘 작동하지 않습니다. memcpy 함수 호출을 없애기 위해 할 수있는 일이 있습니까 (아니면 float [6] 변수를 직접 push_back하는 것입니까?)? 미리 감사드립니다.
다른 벡터를 사용하고 구조체에서 배열을 래핑하는 것의 차이점은 무엇입니까 (이것이 내가 이미하고있는 것입니다)? – stanigator
래핑 된 배열은 아마도 빠르지 만 융통성이 떨어집니다. 예를 들어 배열에 실제로 얼마나 많은 것이 있는지 찾을 수 없습니다. –
sizeof (array)/sizeof (element)를 사용하여 배열에 몇 개의 요소가 있는지 확인할 수 없습니까? – stanigator