unordered_map
을 <string, atomic<int>>
으로 만들고 싶습니다. 이것을 사용하여 (fetch_add), 문자열을 기반으로하는 원자 값 (키)을 저장하거나로드합니다. 예를 들어, 정수 원자 카운터가 10 개라고 가정하지만 4 또는 그 값만 가져 오려고합니다.문자열 및 원자 <int> 키 - 값 쌍의 unordered_map을 만들 수 있습니까?
for (auto want: wanted) {
cout << myValues[want].load() << endl;
이를 :
unordered_map<string, atomic<int>> myValues = {
{"first", atomic<int>(0)},
{"second", atomic<int>(0)}, ... the last key being "tenth"}
};
을 그럼 난 다음을 수행 싶습니다 내가
vector<string> wanted = {"first", "third", "tenth"};
등 문자열의 벡터를 가지고 말 :이 닮은 unordered_map
이 좋아하는 것 원하는 키의 값을 출력해야합니다.
이 작업을 수행 할 수 있습니까? 위와 같이 맵을 작성하려고하면 원자에 대한 대입 연산자가 삭제된다는 오류 메시지가 나타납니다. 이것을 할 수있는 방법이 있습니까?
'atomic' 유형을 사용할 수 있습니다 복사가 불가능하거나 움직일 수 없다. – LWimsey
내 접근 방식이 DOA라는 것을 의미합니까? 같은 종류의 일을 수행하는 다른 방법이 있습니까? – Mark
'atomic' 값 (no no!)을 복사하는 대신에 init 데이터를 따로 정의하고 그걸 반복하여 ['emplace'] (http://en.cppreference.com/w/cpp/container/ unordered_map/emplace)를 맵에 추가하십시오. –