gpt4 book ai didi

c++ - 简单代码需要帮助——没有构造函数的实例匹配参数列表

转载 作者:搜寻专家 更新时间:2023-10-31 01:03:48 28 4
gpt4 key购买 nike

我正在阅读一本关于 C++ 编程的书,但我被 vector 卡住了。书中的例子是:

vector<int> v = {1,2,3};

但是我收到一个错误:

    1   IntelliSense: no instance of constructor "Vector<T>::Vector [with T=int]" matches the argument list
argument types are: (int, int, int) ../path

此外,当我创建字符串 vector 时:

vector<string> v = {"one", "two", "three"}

我收到这个错误:

    1   IntelliSense: no instance of constructor "Vector<T>::Vector [with T=std::string]" matches the argument list
argument types are: (const char [4], const char [4], const char [6]) ../path

我正在使用 VS 2013 和 2013 年 11 月的 CTP 编译器。我做错了什么?

最佳答案

总结和扩展评论和 Bjarne Stroustrup 的 "std_lib_facilities.h" 中所写的内容 header :

  • header 包含一个普通的范围检查 vector 类,称为 Vector用于教学目的;
  • 制作Vector vector 的“无缝”替代在标准库中(再次出于教学目的), header 包含以下行:

    // disgusting macro hack to get a range checked vector:
    #define vector Vector
  • OP 可能使用了该书第一版的标题(它是 std_lib_facilities.h 的 Google 搜索结果中排名靠前的),其 Vector没有 initializer_list构造函数(该版本使用 C++98,它没有初始化列表)。
  • 因此,编译器提示 Vector当它看到 vector<int> v = {1,2,3}; 时没有匹配的构造函数, 变成 Vector<int> v = {1,2,3};宏替换后。

要解决此问题,请下载并使用正确版本的 header 。

关于c++ - 简单代码需要帮助——没有构造函数的实例匹配参数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25215882/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com