C++ 在将列表作为参数传递给函数后访问链接列表中的节点,尝试设置多线程列表

C++ 在将列表作为参数传递给函数后访问链接列表中的节点,尝试设置多线程列表,c++,multithreading,linked-list,C++,Multithreading,Linked List,我正在尝试设置一个多线程链表。我想我已经正确地设置了初始列表。正如我的文章标题中所说,我不知道如何访问列表中的节点以添加第二个线程。这是我目前掌握的代码 void List::setListByName(Winery& winePlace){ Node * node = new Node; Node * curr = headName->nextName; Node * prior = headName; node->vineyard = wi

我正在尝试设置一个多线程链表。我想我已经正确地设置了初始列表。正如我的文章标题中所说,我不知道如何访问列表中的节点以添加第二个线程。这是我目前掌握的代码

void List::setListByName(Winery& winePlace){
    Node * node = new Node;
    Node * curr = headName->nextName;
    Node * prior = headName;
    node->vineyard = winePlace;
    node->nextName = NULL;
    char newWine[CHAR_SIZE] = "Hi";
    char currWine[CHAR_SIZE] = "Hi";
    winePlace.getWineryName(newWine);
    while(curr != tailName){
        curr->vineyard.getWineryName(currWine);
        if(strcmp(currWine, newWine) < 0){
            prior = curr;
            curr = curr->nextName;
        }
        else{
            break;
        }
    }
    prior->nextName = node;
    node->nextName = curr;    
}

void List::qualityScoreSort(List& list){
    Node* curr = headScore->nextRating;
    Node* previous = headScore;
    while(curr != tailScore){
        previous->nextRating = list.Node;//?????
        list.Node.//????
    }
}
void List::setListByName(Winery&winePlace){
节点*节点=新节点;
节点*curr=headName->nextName;
节点*preor=头名;
节点->葡萄园=酒庄;
node->nextName=NULL;
char newWine[char_SIZE]=“嗨”;
char currWine[char_SIZE]=“Hi”;
winePlace.getWineryName(新葡萄酒);
while(curr!=tailName){
curr->vineyard.getWineryName(currWine);
if(strcmp(currWine,newWine)<0){
先前=当前;
curr=curr->nextName;
}
否则{
打破
}
}
prior->nextName=节点;
节点->下一个名称=当前;
}
无效列表::qualityScoreSort(列表和列表){
节点*curr=headScore->nextranting;
节点*previous=headcore;
while(curr!=tailScore){
previous->nextranting=list.Node;//?????
列表.节点//????
}
}

什么是“多线程链表”?我猜你和这个人的过程是一样的:多线程链表使用多组指针来遍历基于不同对象数据成员的列表。它只能用于排序。您的意思是要在相同的数据值上对两个链接列表进行排序吗?也就是说,有点像一个常规的链表,但在所有节点上都有一组额外的指针,这样您就可以按多个不同的顺序遍历?如果是这样的话,那就不是大多数人所说的“多线程的”。:)您也可以添加类定义吗?(节点和列表)