Проблем между Visual Studio Community 2019 и Judge
Здравейте, имам проблем с judge на Task {2} - Censorship от " Code Oragnization and C++ Templates ". В Visual Studio Community 2019 кода минава, но не и в judge !
main.cpp ( skeleton )
#include <iostream>
#include <string>
#include <sstream>
#include <set>
#include "Article13Filter.h"
int main() {
std::string copyrightedLine;
std::getline(std::cin, copyrightedLine);
std::set<std::string> copyrighted;
std::istringstream lineIn(copyrightedLine);
std::string copyrightedItem;
while (lineIn >> copyrightedItem) {
copyrighted.insert(copyrightedItem);
}
Article13Filter filter(copyrighted);
std::string inputLine;
while (std::getline(std::cin, inputLine) && inputLine != "end") {
if (!filter.blockIfCopyrighted(inputLine)) {
std::cout << inputLine << std::endl;
}
}
std::cout << "Blocked: ";
for (std::string blockedItem : filter.getBlocked()) {
std::cout << blockedItem << " ";
}
return 0;
}
Моя код ( хедър файл )
#ifndef ARTICLE13FILTER_H
#define ARTICLE13FILTER_H
#include<sstream>
#include<vector>
namespace {
class Article13Filter
{
mutable std::set<std::string> copyrighted;
mutable std::vector<std::string> blocked;
public:
Article13Filter(std::set<std::string> copyrighted) : copyrighted(copyrighted) {}
bool blockIfCopyrighted(std::string const& line) const
{
if (copyrighted.find(line) == copyrighted.end())
{
return false;
}
else
{
blocked.push_back(line);
return true;
}
}
std::vector<std::string> getBlocked() const
{
return blocked;
}
};
}
#endif
Това са кодовете, първоначално си мислех, че е нещо просто, но грешката която дава изглежда STL-ска ( от тези любимите ми ) :
Compiled file is missing. Compiler output: ...\ccIhU4VM.o:CensorshipMain.cpp:(.text+0x1a5): undefined reference to `Article13Filter::Article13Filter(std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)'
...\ccIhU4VM.o:CensorshipMain.cpp:(.text+0x252): undefined reference to `Article13Filter::blockIfCopyrighted(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
...\ccIhU4VM.o:CensorshipMain.cpp:(.text+0x2cc): undefined reference to `Article13Filter::getBlocked[abi:cxx11]()'
collect2.exe: error: ld returned 1 exit status
Аз лично нямам идеи, надявам се вие да ме насочите. Има хора с по 100 точки, тоест най-вероятно проблемът е в разминаването на компилаторите.
линк към задачата : https://judge.softuni.bg/Contests/Compete/Index/1187#1