одна строка подтверждения для проверки сортировки контейнера STL

Решение для меня заключалось в том, чтобы установить атрибут «form» кнопки

<form id="form_id_name"><button name="btnSubmit" form="form_id_name" /></form>

или js:

YOURFORMOBJ.getElementsByTagName("button")[0].setAttribute("form", "form_id_name");
YOURFORMOBJ.submit();
13
задан Ghostrider 2 June 2010 в 16:05
поделиться

3 ответа

Используйте adjacent_find в сочетании с меньшим или большим функтором.

Ограничение:
Вы должны знать, отсортирован ли контейнер по возрастанию или убыванию.

Если vector предполагается отсортировать в порядке возрастания:

//Checks the first element where adjacent value where elem > nextElem
//returns end if the vector is sorted!
//Complexity is O(n)
vector<int>::iterator pos =  std::adjacent_find (aVec.begin(), aVec.end(),   // range
                                     std::greater<int>());               


if (pos == aVec.end()) 
{
    std::cout<<" sorted"<<endl;
}
else
{
    std::cout<<"Not sorted"<<endl;
}
23
ответ дан 1 December 2019 в 20:11
поделиться

Вы можете использовать std::is_sorted(vec.begin(),vec.end()), чтобы проверить, отсортирован ли он. Заметьте, однако, что это O(n).

8
ответ дан 1 December 2019 в 20:11
поделиться

Это зависит от того, какой тип данных STL вы хотите использовать.

Карта уже отсортирована по ключу при условии, что ключ имеет перегруженные операторы сравнения. Здесь все в порядке.

Список требует явного вызова функции сортировки. Вам нужно будет следить за тем, отсортировали вы его или нет.

Надеюсь, это поможет.

0
ответ дан 1 December 2019 в 20:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: