Использование std::lower_bound() для больших массивовC++

Программы на C++. Форум разработчиков
Anonymous
 Использование std::lower_bound() для больших массивов

Сообщение Anonymous »

Приведенный ниже код возвращает ошибочные результаты, если он скомпилирован для 32-разрядных систем Linux. Та же проблема применима и к 64-разрядным системам при наличии достаточно больших векторов.
Имейте предварительные условия low_bound code> или STL в целом был нарушен, и если да, то где?
Источники STL сообщили мне, что размер вектора приводится к знаковому типу, что объясняет такое поведение.

Код: Выделить всё

// compile with and without -m32 switch
#include
#include
#include
#include
using namespace std;
int main() {
try {
vector v((1ULL 

Подробнее здесь: [url]https://stackoverflow.com/questions/51907247/using-stdlower-bound-on-large-arrays[/url]

Вернуться в «C++»