gpt4 book ai didi

c++ - 如何将对象插入集合

转载 作者:行者123 更新时间:2023-11-30 02:50:44 25 4
gpt4 key购买 nike

我试图将一个对象插入到一个集合中,我重载了“<”运算符:

class domino {

public:
domino();
domino(int l, int r);

void SetRightDots(int rightDots);
int GetRightDots() const;

void SetLeftDots(int leftDots);
int GetLeftDots() const;

string toString() const;
bool operator<(const domino &d) const;
bool operator==(const domino &d) const;

private:
int leftDots;
int rightDots;

};


int main(int argc, char** argv){
set<domino> sd=set<domino>();
set<domino>::iterator ite;

for (int i = 1; i <= 6; i++) {
for (int j = i; i <= 6; j++) {
sd.insert(domino(i,j));
}
}

}

但我仍然收到以下错误:

/home/joju/NetBeansProjects/CppApplication_1/main.cpp:51: 对 `domino::domino(int, int)' 的 undefined reference

build/Debug/GNU-Linux-x86/main.o: 在函数 `std::less::operator()(domino const&, domino const&) const' 中:

/usr/include/c++/4.6/bits/STL_function.h:236: 未定义对`domino::operator<(domino const&) const'的引用

collect2: ld 返回了 1 个退出状态

最佳答案

您的编译器提示未找到采用两个整数的构造函数的实现。即使将其留空,您也需要实际定义该构造函数。

例如:

domino::domino(int a, int b) { /* do something */ }

在你的类之外或者你可以直接在类中定义它:

class domino {
/* stuff */
domino(int l, int r) { /* do something */ }
/* stuff */
};

关于c++ - 如何将对象插入集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20206234/

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