首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >for(auto& x: unordered_map变量)-此语句抛出错误

for(auto& x: unordered_map变量)-此语句抛出错误
EN

Stack Overflow用户
提问于 2013-12-20 21:07:41
回答 2查看 507关注 0票数 0

嗨,我的代码片段如下所示

代码语言:javascript
复制
#include <iostream>
#include <string>
#include <unordered_map>

struct job
{
    int priority;
    int state;
    std::string name;
};
job* selectJob(std::unordered_map<int, job*> jobList)
{
    for (auto& x : jobList)
    {
        if(x->state == 1)
        return x;
    }
    return NULL;
}

int main()
{
    std::unordered_map<int, job*> jobList;
    job a = { 1, 1, "a" };
    jobList.insert(std::make_pair<int, job*>(1, &a));
    job *selected = NULL;

    while (NULL != (selected = selectJob(jobList)))
    {
        std::cout << "Name: " << selected->name << "Prio: " << selected->priority << std::endl;
        selected->state = 2;
    }
    return 0;
}

在linux上编译时,它会抛出一个错误:

代码语言:javascript
复制
g++ -std=gnu++0x q.cpp
q.cpp: In function âjob* selectJob(std::unordered_map<int, job*, std::hash<int>, std::equal_to<int>, std::allocator<std::pair<const int, job*> > >&)â:
q.cpp:13: error: a function-definition is not allowed here before â:â token
q.cpp:18: error: expected primary-expression before âreturnâ
q.cpp:18: error: expected `;' before âreturnâ
q.cpp:18: error: expected primary-expression before âreturnâ
q.cpp:18: error: expected `)' before âreturnâ

有人面对过这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-20 21:34:43

您使用的编译器版本(gcc 4.3)不支持自动变量。

status.html

自动类型变量N1984编号

票数 2
EN

Stack Overflow用户

发布于 2013-12-20 21:32:05

value_typeunordered_map是一对键和值,您需要选择第二个。

代码语言:javascript
复制
job* selectJob(std::unordered_map<int, job*> jobList)
{
    for (auto& x : jobList)
    {
        if(x->second->state == 1)
        return x->second;
    }
    return NULL;
}

此外,您可能需要传递引用,以避免复制和导致一个悬空点。

代码语言:javascript
复制
job* selectJob(std::unordered_map<int, job*>& jobList)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20711965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档