Autor |
Nachricht |
Kenner von C++
Unregistrierter
|
Kenner von C++ Unregistrierter
15:06:15 09.01.2017 Titel: |
|
Zitieren |
Wenn es keine Einschrängungen bzgl. der Benutzung des Standards gibt, so geht das auch so:C++: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include <algorithm>
#include <cassert>
bool isSorted(const int* arr, std::size_t from, std::size_t to)
{
return std::adjacent_find(arr + from, arr + to, [](int prev, int next) { return !(prev <= next); }) == arr + to;
}
int main()
{
int arr[] = {19, 3, 17, 17, 129, -3, 102, 102, 2};
assert( isSorted(arr, 1, 5));
assert(!isSorted(arr, 0, 2));
assert(!isSorted(arr, 6, 9));
assert( isSorted(arr, 5, 8));
assert( isSorted(arr, 0, 1));
} | |
der Code von dudelDöDiriDuDiDudelDö versagt bei einem leeren Intervall. |
|
|
 |
noch ein Kenner von C++
Unregistrierter
|
noch ein Kenner von C++ Unregistrierter
16:15:42 09.01.2017 Titel: |
|
Zitieren |
Seit C++11 gibt es die Standardfunktion
C++: | bool std::is_sorted( ForwardIt first, ForwardIt last ); | |
Header: <algorithm> |
|
|
 |
Arcoth
Moderator
Benutzerprofil
Anmeldungsdatum: 02.10.2013
Beiträge: 3668
|
Arcoth Moderator
17:34:05 09.01.2017 Titel: |
|
Zitieren |
Kenner von C++ schrieb: | C++: | bool isSorted(const int* arr, std::size_t from, std::size_t to)
{
return std::adjacent_find(arr + from, arr + to, [](int prev, int next) { return !(prev <= next); }) == arr + to;
} | |
|
C++: | bool issorted(auto it, auto sen) {return std::adjacent_find(it, sen, std::greater<>{}) == sen;} | |
|
_________________ Obstacles are those frightful things you see when you take your eyes off your goal. - Henry Ford
|
|
 |
|
Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.
|
|
|
|