如何在 C++ 中的向量结构中使用结构向量?
Posted
技术标签:
【中文标题】如何在 C++ 中的向量结构中使用结构向量?【英文标题】:How to use a vector of structs in a vector structs in c++? 【发布时间】:2017-04-15 00:38:21 【问题描述】:我想创建一个火车向量,其中每列火车都需要一个成对向量。
如果我在 main() 之外运行代码,我会收到以下错误:
naive-bayes.cpp:17:15:错误:模板参数 1 无效 向量 对; naive-bayes.cpp:17:15:错误:模板参数 2 无效在main()
中,我收到以下错误:
代码如下:
struct pair
int index;
int value;
;
struct trains
string label;
vector<pair> pairs;
;
【问题讨论】:
你#include <vector>
了吗?你是using namespace std
吗?
而且,如果你有using namespace std
,那么如果你有#include <utility>
,你就是在自找麻烦,因为有一个模板化的std::pair
。更糟糕的是,在某些实现中,即使标准不需要,一些标准头文件也会相互包含。
不要垃圾标签! C 不是 C++ 不是 C!
【参考方案1】:
你的问题可能是由于using namespace std;
。
标准库中有一个std::pair
类型。
试试这个:
#include <string>
#include <vector>
struct pair
int index;
int value;
;
struct trains
std::string label;
std::vector<pair> pairs;
;
int main()
return 0;
【讨论】:
【参考方案2】:如果没有完整的程序示例可供使用,我真正要指出的是,您本地的 pair
声明可能会与 std::pair
混淆。将struct pair
的定义更改为struct mypair
。
【讨论】:
struct mypair
和 mypair
在 C++ 中是等价的。
@Peter - 这是真的吗?哎呀!刚刚在这里尝试过,您确实是正确的。感谢您的指正。会更新
是的,这是第二个解决方案:)以上是关于如何在 C++ 中的向量结构中使用结构向量?的主要内容,如果未能解决你的问题,请参考以下文章