从容器中添加和删除元素,而不收缩它
adding and erasing elements from container, without shrinking it
如何制作一个可以在其中添加元素的容器,例如在开头添加 1 2 3,然后添加几个空格,然后添加 4、5、6。所以它看起来像这样:
add(1, 0) -> add one on position 0
add(2, 1)
add(3, 2)
add(4, 5)
add(5, 6)
print() --> 0-2: 1,2,3 4-5: 4,5
erase(2, 0) -> (length, position)
print() --> 2: 3 4-5: 4,5
目的是以后补缺的地方
第
您可以为此使用 std::map
/std::unordered_map
。看起来像
std::unordered_map<int, int> data;
data[0] = 1;
data[1] = 2;
data[2] = 3;
data[5] = 4;
data[6] = 5;
//print() --> 1, 2, 3, 4, 5, 6
data.erase(data.begin(), std::next(data.begin(), 2)) // erase first 2 elements
//print() --> 3, 4, 5, 6
如何制作一个可以在其中添加元素的容器,例如在开头添加 1 2 3,然后添加几个空格,然后添加 4、5、6。所以它看起来像这样:
add(1, 0) -> add one on position 0
add(2, 1)
add(3, 2)
add(4, 5)
add(5, 6)
print() --> 0-2: 1,2,3 4-5: 4,5
erase(2, 0) -> (length, position)
print() --> 2: 3 4-5: 4,5
目的是以后补缺的地方
第
您可以为此使用 std::map
/std::unordered_map
。看起来像
std::unordered_map<int, int> data;
data[0] = 1;
data[1] = 2;
data[2] = 3;
data[5] = 4;
data[6] = 5;
//print() --> 1, 2, 3, 4, 5, 6
data.erase(data.begin(), std::next(data.begin(), 2)) // erase first 2 elements
//print() --> 3, 4, 5, 6