0
는 :C++지도 나 일부 데이터를 저장하기 위해 다음과 같은 데이터 구조를 필요
std::map<int, std::map<unsigned long, std::vector<unsigned long> > > lifetime ;
위 map
는 클래스의 인스턴스 멤버가 될 것입니다. 질문 : 내가 명시 적으로 new
또는 생성자를 사용하여 내부 컨테이너를 초기화해야 할 필요가 있습니까? 예를 들면 :
if (this->lifetime[sm].find(address) == this->lifetime[sm].end()) {
(this->lifetime[sm])[address] = std::vector<unsigned long>() ;
}
또한 벡터 및지도는 인스턴스 멤버로 초기화하고 중첩 할 때 내가 그뿐만 아니라 몇 가지 설명을 부탁드립니다 방법의 세부 사항을 이해하지 못하는 것 같습니다.
그래서 이전의 초기화없이 'this-> lifetime [sm] [address] .push_back (current_cycle);'과 같은 것이 작동할까요? – DarthPaghius
@parsoa 시도해보십시오. – xaxxon
@xaxxon 잘 작동하지 않으며 벡터를 미리 초기화해야하는 이유가 무엇인지 설명 할 수 있습니까? – DarthPaghius