는C 스타일 bool 배열을 대체하는 표준 방법이 있습니까? 이 코드 조각에서
void legacyFunction(int length, bool *bitset)
{
// stuff, lots of stuff
}
int main()
{
int somenumber = 6;
// somenumber is set to some value here
bool *isBitXSet = new bool[somenumber];
// initialisation of isBitXSet.
legacyFunction(somenumber, isBitXSet);
delete[] isBitXSet;
return 0;
}
나는
std::vector<bool> isBitXset(somenumber, false);
처럼 무언가에 의해 bool *isBitXSet = new bool[somenumber];
을 교체하고 싶습니다하지만
legacyFunction(somenumber, isBitXSet.data());
data()
때문에이 std::vector<bool>
존재하지 않습니다 할 수 없다 . 그리고 legacyFunction()
의 인터페이스를 변경할 수 없습니다.
C 스타일 bool 어레이에 대한 좋은 대안이 있습니까?
누락 된'data()'멤버 함수가 유일한 문제는 아닙니다. 'std :: vector'는보다 공간 효율적인 구현을 제공 할 수있는 전문 분야입니다. 그래서'vector '와 C 스타일'bool' 배열의 요소는 겹칠 수 없습니다. –
[벡터에 대한 대안] 가능한 복제본 (https://stackoverflow.com/questions/670308/alternative-to-vectorbool) –
moooeeeep
@moooeeeep 예, 맞았습니다. 죄송합니다. 일반적으로 나는 혼자서 질문을 삭제할 것이다. 그러나 나는 2009 년의 답변보다 훨씬 더 비토리오 로미오가 준 답변을 좋아합니다. – TobiMcNamobi