Po dłuższej przerwie od c++ wróciłem do niego, napisałem najprostsze sortowanie bąbelkowe i deklarację szablonu funkcji umieściłem w jednym pliku buble_sort.h a definicję w buble_sort.cpp
buble_sort.h
#pragma once
#include <vector>
template <typename T>
std::vector<T> buble_sort(std::vector<T> input);
buble_sort.cpp
#include "buble_sort.h"
template <typename T>
std::vector<T> buble_sort(std::vector<T> input)
{
for (int i = 0; i<input.size(); i++)
{
for (int k = 0; k<input.size() - 1; k++)
{
if (input[k]>input[k + 1])
{
std::swap(input[k], input[k + 1]);
}
}
}
return input;
}
main.cpp
#include <iostream>
#include "buble_sort.h"
int main()
{
std::vector<int> wek = { 5,6,8,6,4,1,2,7,9,4,5,6 };
std::clog << wek.size()<<"\n";
wek = buble_sort<int>(wek);
for (int i = 0; i < wek.size(); i++)
{
std::clog << wek[i] << " ";
}
}
i pojawiają mi się błędy (chyba linkera) nie wiem jak się ich pozbyć, błędy:
-Severity Code Description Project File Line Suppression State Error LNK1120 1 unresolved externals agorytmy
-Severity Code Description Project File Line Suppression State
Error LNK2019 unresolved external symbol "class std::vector<int,class std::allocator<int> > __cdecl buble_sort<int>(class std::vector<int,class std::allocator<int> >)" (??$buble_sort@H@@YA?AV?$vector@HV?$allocator@H@std@@@std@@V01@@Z) referenced in function _main agorytmy
Wiem kod banalny ale nie o nie pytam się o sposób działania - funkcja działa poprawnie tylko ten linker... Z góry dzięki za pomoc.