我需要检查在我的向量中元素是否连续排序?
for(i=1; i<=K; i++)
if(v[i]=v[i+1]-1)
Run Code Online (Sandbox Code Playgroud)
如果该语句为真,我想返回最大整数.
恩.4 5 6 7
7
Run Code Online (Sandbox Code Playgroud)
Bar*_*rry 11
有一个算法std::is_sorted:
if (std::is_sorted(v.begin(), v.end()) {
return v.back(); // the largest element would be the last one
}
else {
// ??
}
Run Code Online (Sandbox Code Playgroud)
我需要检查向量中的元素是否按顺序排列
使用C++11的std::is_sorted算法:
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
std::vector<int> v1 { 4, 5, 7, 6 };
std::vector<int> v2 { 4, 5, 6, 7 };
using std::begin;
using std::end;
std::cout << std::is_sorted(begin(v1), end(v1)) << "\n";
std::cout << std::is_sorted(begin(v2), end(v2)) << "\n";
}
Run Code Online (Sandbox Code Playgroud)
如果该陈述为真,我想返回最大的整数。
这是一份工作std::max_element:
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
std::vector<int> v1 { 4, 5, 7, 6 };
std::vector<int> v2 { 4, 5, 6, 7 };
using std::begin;
using std::end;
std::cout << *std::max_element(begin(v1), end(v1)) << "\n";
std::cout << *std::max_element(begin(v2), end(v2)) << "\n";
}
Run Code Online (Sandbox Code Playgroud)
请注意,不需要std::max_element对其输入进行排序。
或者,如果无论如何都已排序,则只需使用v1.back().