当前位置: 首页>>代码示例>>C++>>正文


C++ unordered_map::try_emplace方法代码示例

本文整理汇总了C++中unordered_map::try_emplace方法的典型用法代码示例。如果您正苦于以下问题:C++ unordered_map::try_emplace方法的具体用法?C++ unordered_map::try_emplace怎么用?C++ unordered_map::try_emplace使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在unordered_map的用法示例。


在下文中一共展示了unordered_map::try_emplace方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: endpointQuery

//===========================================================================
// Public API
//===========================================================================
void Dim::endpointQuery(
    int * cancelId,
    IEndpointNotify * notify,
    string_view name,
    int defaultPort
) {
    QueryTask * task = nullptr;
    for (;;) {
        *cancelId = ++s_lastCancelId;
        auto ib = s_tasks.try_emplace(*cancelId);
        if (ib.second) {
            task = &ib.first->second;
            break;
        }
    }
    task->id = *cancelId;
    task->notify = notify;

    // if the name is the string form of an address just return the address
    Endpoint end;
    if (parse(&end, name, defaultPort)) {
        task->ends.push_back(end);
        taskPushEvent(task);
        return;
    }

    // Asynchronous completion requires wchar version of:
    wstring wname{toWstring(name)};
    wstring wport{to_wstring(defaultPort)};

    // extract non-default port if present in name
    size_t pos = wname.rfind(L':');
    if (pos != string::npos) {
        wport = wname.substr(pos + 1);
        wname.resize(pos);
    }

    WinError err = GetAddrInfoExW(
        wname.c_str(),
        wport.c_str(),
        NS_ALL,
        NULL, // namespace provider id
        NULL, // hints
        &task->results,
        NULL, // timeout
        &task->overlapped(),
        &addressQueryCallback,
        &task->cancel
    );
    if (err != ERROR_IO_PENDING)
        addressQueryCallback(err, 0, &task->overlapped());
}
开发者ID:gknowles,项目名称:dimapp,代码行数:55,代码来源:winaddress.cpp


注:本文中的unordered_map::try_emplace方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。