在C++中插入列表时没有匹配函数错误 当我尝试在C++中插入一个项目时,我会出错。错误是没有匹配的函数用于调用insert。我也试过向前推,但也出现了同样的错误

在C++中插入列表时没有匹配函数错误 当我尝试在C++中插入一个项目时,我会出错。错误是没有匹配的函数用于调用insert。我也试过向前推,但也出现了同样的错误,c++,list,insert,C++,List,Insert,以下是错误消息: main.cpp:38: error: no matching function for call to ‘std::list<Salesperson, std::allocator<Salesperson> >::insert(Salesperson&)’ /usr/lib/gcc/i686-pc-cygwin/4.3.4/include/c++/bits/list.tcc:99: note: candidates are: s

以下是错误消息:

main.cpp:38: error: no matching function for call to ‘std::list<Salesperson, std::allocator<Salesperson> >::insert(Salesperson&)’
    /usr/lib/gcc/i686-pc-cygwin/4.3.4/include/c++/bits/list.tcc:99: note: candidates are: std::_List_iterator<_Tp> std::list<_Tp, _Alloc>::insert(std::_List_iterator<_Tp>, const _Tp&) [with _Tp = Salesperson, _Alloc = std::allocator<Salesperson>]
    /usr/lib/gcc/i686-pc-cygwin/4.3.4/include/c++/bits/stl_list.h:961: note:                 void std::list<_Tp, _Alloc>::insert(std::_List_iterator<_Tp>, size_t, const _Tp&) [with _Tp = Salesperson, _Alloc = std::allocator<Salesperson>]
代码如下:

#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <string>
#include <list>
#include "Salesperson.h"
#include "Salesperson.cpp"
#include "OrderedList.h"
#include "OrderedList.cpp"
using namespace std;

int main(int argc, char** argv)
{
    cout << "\n------------ Asn 8 - Sales Report ------------" << endl;

    list<Salesperson> s;
    int id;
    string fName, lName;
    int numOfSales;
    string year;

    std::ifstream input("Sales.txt");
    while( !std::getline(input, year, ',').eof() )
    {
        input >> id;
        input >> lName;
        input >> fName;
        input >> numOfSales;
        Salesperson sp = Salesperson( id, fName, lName );
        s.insert( sp ); //THIS IS LINE 38 **************************
        //s.push_front( sp ); //ALSO GETS THE SAME ERROR


        for( int i = 0; i < numOfSales; i++ )
        {
            double sale;
            input >> sale;
            sp.sales.insert( sale );
        }
    }

    cout << endl;
    return (EXIT_SUCCESS);
}

insert需要一个位置和一个元素-你是说向前推还是向后推?

insert需要一个位置和一个元素-你是说向前推还是向后推?

。cpp文件不应该包括在内,它们应该单独编译并链接到最终的二进制文件中。.不应该包括cpp文件,它们应该单独编译并链接到最终的二进制文件中。嗯。。。我刚刚又试了一次,现在“推前”功能正常了。@Josh:您可能从第44行sp.sales.insert sale;中得到了相同的错误;。确保您将两者都更改为使用push_back。嗯。。。我刚刚又试了一次,现在“推前”功能正常了。@Josh:您可能从第44行sp.sales.insert sale;中得到了相同的错误;。确保将两者都更改为使用push_back。