Использование пары в качестве ключа на карте (C ++ / STL)

Вы можете использовать следующую функцию:

function callAjax(url, callback){
    var xmlhttp;
    // compatible with IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function(){
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
            callback(xmlhttp.responseText);
        }
    }
    xmlhttp.open("GET", url, true);
    xmlhttp.send();
}

Вы можете попробовать похожие решения онлайн по этим ссылкам:

30
задан Soo Wei Tan 2 May 2012 в 21:02
поделиться

1 ответ

std::map::insert принимает единственный аргумент: пару ключ-значение, поэтому вам нужно использовать:

mapa.insert(std::make_pair(p1, "Manzana"));

Вам следует использовать std::string вместо C-строк в ваших типах. В текущем виде вы, скорее всего, не получите ожидаемых результатов, потому что поиск значений в карте будет осуществляться путем сравнения указателей, а не строк.

Если вы действительно хотите использовать C-строки (чего, опять же, делать не следует), то вам нужно использовать const char* вместо char* в ваших типах.

И вообще Как я могу использовать любой тип структуры (объекты, структуры и т.д.) в качестве ключа в карте?

Вам нужно перегрузить operator< для типа ключа или использовать пользовательский компаратор.

29
ответ дан 27 November 2019 в 21:05
поделиться
Другие вопросы по тегам:

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