LINUX.ORG.RU

История изменений

Исправление asaw, (текущая версия) :

https://troydhanson.github.io/uthash/userguide.html При этом строки со структурами буду укладывать в один блок памяти, полностью избегу копирования, а если жизнь потребует, еще и память могу по-особому выделять. Шах и мат!

Давай ты мне не сказки будешь рассказывать, а просто приведешь работающий аналог на C.

#include <iostream>
#include <string>
#include <unordered_map>
#include <utility>

struct S
{
    int i;
    std::string s;
};

int main()
{
    std::unordered_map<std::string, S> m;
    
    m.emplace(std::make_pair<std::string, S>("one", {1, "cat"}));
    m.emplace(std::make_pair<std::string, S>("two", {2, "dogs"}));
    m.emplace(std::make_pair<std::string, S>("three", {3, "cows"}));
    
    for (auto& p : m) {
        std::cout << p.first << " (" << p.second.i << ") " << p.second.s<< std::endl;
    }
}
http://cpp.sh/36tg

DELIRIUM может присоединиться.

Исходная версия asaw, :

https://troydhanson.github.io/uthash/userguide.html При этом строки со структурами буду укладывать в один блок памяти, полностью избегу копирования, а если жизнь потребует, еще и память могу по-особому выделять. Шах и мат!

Давай ты мне не сказки будешь рассказывать, а просто приведешь работающий аналог на C.

#include <iostream>
#include <string>
#include <unordered_map>
#include <utility>

struct S
{
    int i;
    std::string s;
};

int main()
{
    std::unordered_map<std::string, S> m;
    
    m.emplace(std::make_pair<std::string, S>("one", {1, "cat"}));
    m.emplace(std::make_pair<std::string, S>("two", {2, "dogs"}));
    m.emplace(std::make_pair<std::string, S>("three", {3, "cows"}));
    
    for (auto& p : m) {
        std::cout << p.first << " (" << p.second.i << ") " << p.second.s<< std::endl;
    }
}
http://cpp.sh/36tg