이 문제는 커뮤니티에서 확인하고 해결해야한다고 생각했지만 잘못된 키워드로 검색하거나 너무 애매합니다.동적 크기 구조체에 사용할 Qt C++ 데이터 컨테이너가 있습니까?
문제는 간단합니다. 동적 데이터 컨테이너 (Vector, List, Queue, 어떤 것이 든간에)를 정의해야하는 구조체를 정의하고 싶습니다.
#pragma pack(1)
struct Example
{
int foo;
QVector<int> bar;
};
나는이 벡터에 정수 값을 삽입 (또는 다른 Qt는/STL 컨테이너을) 할 필요가 나는 파일에 원시 데이터를 기록하기 위해 바이트 배열이 구조체의 내용을 복사 할. QVector가 가리키는 그냥 평범한 포인터이기 때문에
8
8
지금이 아마도 :
Example exstr;
qDebug()<<sizeof(exstr);
exstr.bar.push_back(12);
exstr.bar.push_back(5);
qDebug()<<sizeof(exstr);
그것은 값을 표시
내가가 발생하는 것은 나는 다음과 같은 코드를 작성할 때이다 연속 데이터하지만 내가 필요한 건 동적으로 크기를 조정할 수있는 데이터 컨테이너 (또한 구조체의 크기를 조정할 것입니다) 및 serialize 할 때 바이트별로 내용을 사용할 수 있도록합니다.
미리 도움을 주셔서 감사합니다.
동적 크기의 컨테이너를 출력하려는 경우 직렬화 라이브러리를 사용하거나 직접 롤백해야합니다. – NathanOliver
벡터의 바이트 수를 알고 싶습니까? – CroCo
@CroCo 그게 내 원인을 도울 수 있지만 문제가 완전히 해결되지 않았는데, 이유는 직렬화 문제가 여전히 남아 있기 때문입니다. 그러나 일반적으로 누군가가 컨테이너에 새 요소를 삽입 할 때마다 "sizeof"가 증가하는 것을 볼 수있는 방법을 제안하면 매우 기쁩니다. –