当前位置: 首页 > 知识库问答 >
问题:

错误C2784,键映射中的类

霍襦宗
2023-03-14

我对容器映射有问题。我需要在key中存储我自己的类Person,但我有错误C2784(即,“编译器无法从提供的函数参数中确定模板参数”)。这是《Ivor Horton的开始:Visual C 2010》一书中的一个例子

#include<map>
#include<string>
#include <iostream>
using namespace std;

void main()
{
    class Person{
     public:
     string c_name,c_surname;
     Person(string name,string surname){
     c_name=name;
     c_surname=surname;
        }
    };

     map<Person,string> phonebook;

     phonebook.insert(make_pair(Person("Mel","GIBSON"),"24 32 23"));
     phonebook[Person("Mel2","Gibson2")]="243 32 23";

      /* it doesn`t work too
     typedef pair<Person,string> Entry;
     Entry entry1= Entry(Person("Jack","Jones"),"213 567 1234");

     phonebook.insert(entry1);*/

    system("Pause");
}

错误1错误C2784:“布尔标准::运算符

错误 2 错误 C2784: 'bool std::运算符

错误 3 错误 C2784: '布尔 std::运算符

错误4错误C2784:“布尔标准::运算符

错误5错误C2784:'bool std::运算符

错误6错误C2784:'bool std::运算符

错误7错误C2784:“布尔标准::运算符”

错误8错误C2784:“布尔标准::运算符

错误 9 错误 C2676:二进制 '

共有2个答案

贾兴学
2023-03-14

在 C 03 中,不能使用局部类(函数中定义的类)作为模板参数。

在C 11中,您可以。

因此,一个修复是更新编译器(有 Visual C 2013),另一个修复是将类定义移出 main

顺便说一句,val main作为标准C和标准C无效,而且它比标准int main更容易键入。如果你的书有val main,那么这是一本非常不好的书。微软的例子包括ulul main也非常不好。

顺便说一下,还有

system("Pause");

最后也是非常不妥的做法,因为

>

  • 没有必要,没有优势,但是

    它使程序更难以使用,并有一些其他问题,最重要的是,

    这是特定于Windows的不可移植的代码

    运行控制台程序,使其在结束时停止

    >

  • 在Visual Studio中,使用CtrlF5,或

    在Visual Studio中,在main的末尾放置一个断点(只需单击左边距),并在调试时运行它(例如,通过按键F5),或者

    从命令解释器运行它。

    更新:现在添加的错误消息(甚至是第一个)提及运算符

  • 庄经国
    2023-03-14

    这里的问题是< code>std::map要求您的键与< code >相当

     类似资料:
    • 我有两个需要映射的继承层次结构。一个层次结构是国内的,另一个是野生的。我有抽象的Domestic动物和具体的DomesticCat和DomesticDog扩展它。在第二个层次结构中,我有抽象的Wild动物和具体的WildCat和WildDog扩展它。我还有另外两个类,分别是WildAnimalFeeder具有Wild动物的成员对象和DomesticAnimalFeeder具有DomesticAni

    • 我试图按照headfirst jsp和servlets的书,我遇到了以下错误。HTTP状态404 - /Beer/form.html 我的文件夹组织如下 假猫- 同样在啤酒文件夹中,我还有另一个文件夹 WEB-INF,其中包含 web.xml 文件。 首先我想也许我的雄猫根本不起作用,所以我使用我以前完成的 servlet 对其进行了测试。成功了。 我重新启动了web服务器,但仍然出现此错误。我正

    • 假设您有一个表,如下所示: 可以看到列是表的主键和外键。是的,MySQL成功生成了这个表。 问题很简单,我将如何在JPA实体中映射这一点?我是否应该有映射到列的1个id和连接列的另一个字段?欢迎提出建议。

    • 假设我们有一个键-值映射的数据结构,其中键本身也是一个键-值映射。例如: 现在,假设我们要查询此映射中与键的某个键值子集匹配的所有顶级键/值。示例: 我们的查询是“给我所有key值,其中key包含,它将返回第一个和第三个值将返回所有同时具有和的键值,生成第二个值。显然,我们可以在每一个查询的完整地图中进行搜索,但我正在寻找比这更高效的方法。 我四处查看了一下,但是找不到一个高效、易用的C解决方案。

    • 如何转换rxJava中可观察对象返回的错误?现在我有了这个方法: 这种行为是,通过或传递的任何异常都会传播到此函数返回值的订阅者。是否有可能将例外映射到其他东西?就像

    • 我有一个产品数据库。我已经创建了一个简单的Hibernate项目来从数据库中检索所有的产品。但是,我在编译代码时出现了以下异常: 令人惊讶的是,将prodcuts添加到数据库中可以正常工作。