如何在 c++ 中使用 sort() 对向量进行排序
How to sort a vector using sort() in c++
我想在我已经排序的向量中插入一个元素,当它再次排序时,它将被放置在它的排序位置。有一个名为 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());
应该做这个伎俩。
或者,如果您希望能够使用纯数组切换g1
的vector
性,而无需修改此代码,或者如果这是在模板代码中,您希望使用多个容器类型,那么表单
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;
(
相关文章:
- 将结构向量排序为子组
- C++数组与向量排序(在我的情况下,向量比数组慢~2.5倍(无优化))
- 如何在对向量排序后更改索引值?c++
- C++向量排序给出0作为输出
- 将许多向量排序在一起
- 根据一个向量对多个向量排序
- 编译错误向量排序和联合
- C++我自己的函数进行向量排序
- 将字符串的向量排序为日期"yyyymmdd"
- C++ 通过使用旧向量进行预排序来改进向量排序
- C 向量排序 .h .cpp中的单独文件
- 向量排序-c++
- 将向量排序到一个无序映射c++11中
- 向量的向量排序
- c++向量排序方法编译失败,返回预期表达式
- 如何对bitset向量排序
- 向量排序的基础上只有先
- 我如何以相同的方式对两个向量排序,而条件只使用其中一个向量
- 列表排序和结构体向量排序之间的性能差距.c++
- 如何基于第二个字符串对字符串向量的向量排序