Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Ошибка в стандартной библиотеке шланга? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычеркните из слова все буквы "я", стоящие на четных местах http://www.cyberforum.ru/cpp-beginners/thread905031.html
Вычеркните из слова все буквы "я", стоящие на четных местах.
C++ После каждой буквы "о" в слове вставьте сочетание "ля После каждой буквы "о" в слове вставьте сочетание "ля". http://www.cyberforum.ru/cpp-beginners/thread905030.html
номер элемента массива ближайшего к среднеарифметического его значение C++
в массиве вычислить: 1) номер элемента массива ближайшего к среднеарифметического его значение
C++ Разность элементов массива расположенных между первым отрицательное и вторым положительным элементом
в массиве вычислить: 2) разность элементов массива расположенных между первым отрицательное и вторым положительным элементом
C++ Подсчитать количество цифр в строке http://www.cyberforum.ru/cpp-beginners/thread905019.html
???Ввести строку состоящую из цыфр и букв,и посчитать колтчество цыфр(быквы не должно брать считать к количеству)!
C++ Определите количество повторяющихся букв в слове Определите количество повторяющихся букв в слове. подробнее

Показать сообщение отдельно
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501

Ошибка в стандартной библиотеке шланга? - C++

18.06.2013, 01:01. Просмотров 921. Ответов 8
Метки (Все метки)

Обнаружил интересную вещь: std::sort из стандартной библиотеки компилятора clang сортирует неправильно.
Код, на котором это происходит, прилагается:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
 
void print_vector (const std::vector<int> & vector)
{
    for (int x: vector)
    {
        std::cout << x << ' ';
    }
    std::cout << std::endl;
}
 
int main ()
{
    std::vector<int> v(31);
    std::iota(v.begin(), v.end(), 0);
    print_vector(v);
 
    auto compare = std::less_equal<int>();
 
    std::sort(v.begin(), v.end(), compare);
    print_vector(v);
 
    std::cout << (std::is_sorted(v.begin(), v.end(), compare) ? "sorted" : "unsorted")
              << std::endl;
 
    return 0;
}
Проверял на следующих компиляторах:
Код
Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin11.4.0
Thread model: posix
Код
clang version 3.2 (tags/RELEASE_32/final)
Target: x86_64-apple-darwin11.4.0
Thread model: posix
При этом в ГЦЦ всё сортируется правильно.

Вопрос:
Это я что-то делаю не так, или у всех такое?
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru