Я пытаюсь попрактиковаться в перемещении одного элемента карты на другой - поэтому я попробовал следующий код:
using namespace std;
int main(void)
{
/* Initializer_list constructor */
map<char, int> m =
{
{'a', 1},
{'b', 2},
{'c', 3},
{'d', 4},
{'e', 5},
};
cout << "Move element from one map to another" << endl;
/*
char temp;
temp = map1[key1];
map2[key1]=temp;
map1.erase(key1)
*/
string a = "hello";
string b = move(a);
cout << "a=" << a << " b=" << b << endl; // here string **a** is NULL as value is moved
auto s = move(m['a']);
cout << "s=" << s << " m=" << m['a'] << endl; // here
}
Вывод:
Move element from one map to another
a= b=hello
s=1 m=1
Почему операция перемещения не выполняется для std :: map STL container - я ожидал, что после m ['a'] будет пусто?