#include <iostream>
#include <set>
#include <iterator>
using namespace std;
struct keker{
int a;
int b;
};
int main(int argc, char const *argv[]) {
set<keker> rofl;
keker k1,k2,k3,k4;
k1.a = 1;
k2.a = 2;
k3.a = 3;
k4.a = 4;
rofl.insert(k1);
rofl.insert(k2);
rofl.insert(k3);
rofl.insert(k4);
cout<< rofl.begin()->a<<endl;
cout<< rofl.end()->a<<endl;
return 0;
}
После компиляции выводит: 1 1
Хотя должен выводить: 1 4
Помогите, пожалуйста, уже весь день маюсь с этим
Вот тут
rofl.end()->a
он вообще может делать что хочет: разыменовывать итератор, возвращаемый end()
, нельзя!
Это - не последний элемент в контейнере, это итератор, указывающий, грубо говоря, за контейнер!
Все, для чего он пригоден - это для сравнения с ним значения другого итератора - типа, проход по контейнеру завершен или там элемент не найден.
Но не для разыменования!
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть программа с атрибутамиАтрибуты: 1) запускается программа, 2) подхватывается предварительно созданный файл и 3)параметры для него
В общем мне надо создать класс-обертку, для слежения за положением любого окна (ну допустим по его HWND) в WindowsЯ знаю в Qt есть класс QWindow, но там...
Есть клиент на C++, который на win 7 иногда, не систематично, вызывает синий экран смертиПри этом пользователи восьмёрок и десяток с такой проблемой...