생성자의 초기화 목록에 std :: map m_mapName을 추가하고 싶습니다.ctor의 초기화 목록에 std :: map을 추가하십시오.
생성자의 init 목록에 m_mapName()을 입력하면 컴파일러에서이를 허용합니다.
하지만 맞습니까? 올바르지 않은 경우 초기화 목록에 어떻게 맵을 추가 할 수 있습니까?
그런 다음지도에 몇 가지 삽입을 수행합니다. 값을 삽입하는 더 우아한 방법은 무엇입니까? 그래서 매번 insert 함수를 호출하지 않습니까?
상세 정보 :
그냥처럼 : C++, can I statically initialize a std::map at compile time?, 컴파일러는 같은 구문을 허용하지 않습니다
std::map<int, char> example = { (1,'a'),
(2, 'b'),
(3, 'c') };
부스트를 사용할 수 없습니다. 내 코드는 다음과 같습니다
* className.h : *
typedef std::map <uint16_t, int> mapType;
typedef std::pair <uint16_t, int> mapPair;
className{
private:
mapType m_mapName;
}
* className.cpp : *
className::className() :
m_mapName()
{
...
m_mapName.insert(mapPair(someMapValue1, 0));
m_mapName.insert(mapPair(someMapValue2, 0));
m_mapName.insert(mapPair(someMapValue3, 0));
정확하게 연결된 방법에 대한 답변을 읽었습니까? –
예, 했어요. 게시는 내 특정 질문에 대답하지 않습니다 : 왜 컴파일러가 내가 init리스트에 맵을 추가 한 방법을 받아들였습니까? – Developer
부스트도 사용할 수 없습니다. – Developer