将元素移动并添加到数组中

TCG*_*TCG 1 c++ arrays sorting

假设我有一个数组:int list[] = {1, 2, 4, 5, 6}; 我希望将数组从中间向右移动,并将3放在4的位置,这样看起来像:{1, 2, 3, 4, 5, 6}我该怎么做?谢谢.

ana*_*lyg 5

如果可以使用C++标准库,那么它std::vector就是数组的替代品.它有一个专门的方法insert来做你想要的:

std::vector<int> v;
... // add elements 1, 2, 4, 5, 6 to it
v.insert(v.begin() + 2, 3); // insert 3 at position 2
Run Code Online (Sandbox Code Playgroud)

如果您知道插入新元素的位置,这很好.但是,您的列表似乎应该始终排序,并且您希望插入新元素以使其保持排序.如果是这样,你最好使用std::multiset:

std::multiset<int> v;
... // add elements 1, 2, 4, 5, 6 to it
v.insert(3); // insert 3
Run Code Online (Sandbox Code Playgroud)

在这里,您无需知道插入新元素的位置.