我的c ++ list <string> </string>有什么问题

时间:2011-02-18 06:59:02

标签: c++

bee.cpp

            list<string> urls;

              urls.push_back ("one");
              urls.push_back ("two");
              urls.push_back ("Three");
              urls.sort();

                  TP(urls);

TP.h

namespace std {

        class TP {
        public:
            TP(list<string> u);
            virtual ~ThreadPool();
        };

    }

TP.c ++

    TP::TP(list<string> u) {
        list<string>::iterator it;
        for (it=mylist.begin(); it!=mylist.end(); ++it)
            cout << " " << *it;
    }

    TP::~TP() {
        // TODO Auto-generated destructor stub
    }

如果我使用的是一个类,它会在一个文件中使用相同的函数

../src/Bee.cpp: In function ‘int main()’:
../src/Bee.cpp:31: error: conflicting declaration ‘std::TP u’
../src/Bee.cpp:24: error: ‘u’ has a previous declaration as ‘std::list<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > u’
}
#endif /* TP_H_ */

TP.h

2 个答案:

答案 0 :(得分:2)

Fred Larson已经推测您的代码错误,因为您已经非法向std::命名空间添加内容。确实如此。但是,查看有关'std :: TP u'的错误,很明显您根本没有显示相关代码。你在bee.cpp中有两个u声明,而你的代码摘录也没有显示。

答案 1 :(得分:0)

mylist.begin(); it!=mylist.end();

应该是

u.begin(); it!=u.end();