我正在寻找用于非线性最小二乘拟合的Levenberg-Marquardt算法的C#实现.
我一直在苦苦挣扎太长时间,有一个关于如何在c ++中创建通用链表的相当简单的问题.该列表应该包含几种类型的结构,但每个列表只包含一种类型的结构.当我想实现getNode()函数[见下面]时出现问题,因为那时我必须指定它应该返回哪个结构.我试图用类替换结构,其中getNode函数返回一个由所有其他类继承的基类,但它仍然没有做到这一点,因为编译器不允许getNode函数返回除了基类然后.
所以这里有一些代码片段:
typedef struct struct1
{
int param1;
(...)
} struct1;
typedef struct struct2
{
double param1;
(...)
} struct2;
typedef struct node
{
struct1 data;
node* link;
} node;
class LinkedList
{
public:
node *first;
int nbrOfNodes;
LinkedList();
void addNode(struct1);
struct1 getNode();
bool isEmpty();
};
LinkedList::LinkedList()
{
first = NULL;
nbrOfNodes = 0;
}
void LinkedList::addNode(struct1 newData)
{
if (nbrOfNodes == 0)
{
first = new node;
first->data = newData;
}
else
{
node *it = first;
for …Run Code Online (Sandbox Code Playgroud)