如何在 c++ 中使用 sort() 对向量进行排序

How to sort a vector using sort() in c++

本文关键字:向量 排序 sort c++      更新时间:2023-10-16

我想在我已经排序的向量中插入一个元素,当它再次排序时,它将被放置在它的排序位置。有一个名为 sort(( 的函数用于对数组进行排序。如何使用相同的函数对向量进行排序?这是我的代码。它给了我编译错误。

//assume g1 is already sorted with some numbers        
int x;
cin >> x;
g1.push_back(x);
int s = g1.size()/g1.at(g1.begin());
//similar to int s = arr/arr[0]
sort(g1 + s,g1);
std::sort(g1.begin(), g1.end());

应该做这个伎俩。

或者,如果您希望能够使用纯数组切换g1vector性,而无需修改此代码,或者如果这是在模板代码中,您希望使用多个容器类型,那么表单

std::sort(std::begin(g1), std::end(g1));

可能会有更多的吸引力。

无论如何;请阅读文档。

而不是排序,找到新元素应该去的位置并将其插入到那里:

std::vector<int>::iterator loc = std::upper_bound(g1.begin(), g1.end(), x);
g1.insert(loc, x);

或者,更简短地说:

g1.insert(std::upper_bound(g1.begin(), g1.end(), x), x);

为了简单起见,让arr成为向量名称。写:sort(arr.beg(),arr.end());

(假设你已经写了using namespace std;(