C++ 코드에서 C 구조를 초기화하는 더 좋은 방법이 있습니까?C++ 코드에서 C 구조 초기화
변수 선언 지점에서 초기화 프로그램 목록을 사용할 수 있습니다. 그러나 이것은 모든 인수가 컴파일 타임에 알려지지 않았거나 로컬/전역 인스턴스를 선언하지 않은 경우 유용하지 않습니다. 예 :
구조체를 선언하고 API를 사용하는 레거시 C 코드 지역의 인스턴스를 생성 한 후 시간 (myStruct.x = 5;
등)에 각 멤버를 설정 C 라이브러리
void doSomething(std::vector<MyStruct> &items)
{
items.push_back(MyStruct(5,rand()%100,items.size()));//doesn't work because there is no such constructor
items.push_back({5,rand()%100,items.size()});//not allowed either
//works, but much more to write...
MyStruct v;
v.x = 5;
v.y = rand()%100;
v.z = items.size();
items.push_back(v);
}
를 사용하여이
typedef struct
{
int x, y, z;
} MyStruct;
C++ 코드를 시도 할 때 읽기 다소 어려운 진짜 고통이며, 컨테이너에 20 개의 다른 항목을 추가하십시오 ...
C 또는 C++ 솔루션을 찾으십니까? – Christoph