0

文字列をベクトルに変換する関数を作成しました。wstrings と wchar_t も使用したいので、型のテンプレートを作成したいと思います。それらはcsvファイルにあるためです。これが私のファイルです...

main.cpp

#include <iostream>
#include <fstream>
#include "trans.h"
#include "vector_to_string.cpp"

using namespace std;

int main() {
    wifstream tstream("translation.csv");
    wstring s;

    while (getline(tstream, s)){
        vector<wstring> vec = vector_from_string(s, ',');
        wstring ws = vec[0];
        Trans<wstring> t(ws);
        wcout << t.translate(Spanish) << endl;

    }
}

vector_to_string.cpp

template <class T, typename U>
std::vector<T> vector_from_string(T to_vec, U delimit) {
    int pos = 0, len = 0;
    std::vector<T> vec;
    for (int i = 0; i < to_vec.length(); i++) {
        U c = to_vec.at(i);
        if (c == delimit) {
            vec.push_back(to_vec.substr(pos, len));
            len = 0;
            pos = i + 1;
        } else if (i == to_vec.length() - 1) {
            int end = to_vec.length() - pos;
            vec.push_back(to_vec.substr(pos, end));
        } else {
            len++;
        }
    }
    return vec;
}

翻訳.csv

# English , French, German, Spanish
a,une,ein,UNE
aa,aa,aa,Automóvil club británico
aaa,aaa,aaa,aaa
aaron,aaron,aaron,Aaron
ab,un B,ab,Un B
abandoned,abandonné,verlassen,abandonné
abc,abc,ABC,a B C
aberdeen,aberdeen,aberdeen,Aberdeen
abilities,capacités,Fähigkeiten,capacités
ability,aptitude,Fähigkeit,aptitud
able,capable,imstande,capaz
aboriginal,Aborigène,Ureinwohner,aborigène
abortion,Avortement,Abtreibung,avortement
about,à propos,Über,Al respecto
above,au dessus de,über,au dessus de
abraham,abraham,abraham,Abrahán
abroad,à l'étranger,im Ausland,en el Extranjero
abs,abdos,Abs,abdos
...

The problem is in vector_to_string () but I can't find the problem, and I get this syntax error ...

undefined reference to `std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > > demonic::vector_from_string<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, wchar_t>(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, wchar_t)'

What is the problem and how can I best solve it?

4

0 に答える 0