Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
cv4_template
#include <iostream> using std::cout; using std::endl; //typedef int TType; // C retro :-( //using TType = int; // C++ modern :-) template<typename TType = double> // pro prazdne <> implicitne double struct TVector { size_t iSize = 0; size_t iCapacity = 0; TType *iData = nullptr; }; template<typename TType = double> // pro prazdne <> implicitne double TType Get(const TVector<TType> &aVec, size_t aIndex) { if(aVec.iSize <= aIndex) throw "Index mimo vektor"; return aVec.iData[aIndex]; } template<typename TType = double> void Set(TVector<TType> &aVec, size_t aIndex, TType aVal) //a { if(aVec.iSize <= aIndex) throw "Index mimo vektor"; aVec.iData[aIndex] = aVal; } template<typename TType = double> void AllocVector(TVector<TType> &aVec, size_t aSize) // Neni potreba kontrolovat, jestli aVec == nullptr. { // aVec je totiz reference. if(aVec.iData) // aVec je platny https://i.imgflip.com/4hrk9k.jpg it aint much but its honest work - uz nejde link :( //funguje throw "Jiz naalokovano"; //while(true) // test bad_alloc // new double[100000000ul]; // aVec.iData = new TType[aSize]; aVec.iSize = aSize; aVec.iCapacity = aSize; for(size_t i = 0; i < aVec.iCapacity; ++i) aVec.iData[i] = 0; } template<typename TType = double> void DeallocVector(TVector<TType> &aVec) { delete[] aVec.iData; aVec.iSize = aVec.iCapacity = 0; aVec.iData = nullptr; } template<typename TType = double> void Add(TVector<TType> &aRes, const TVector<TType> &aVec1, const TVector<TType> &aVec2) { if((aVec1.iSize != aVec2.iSize) || (aVec1.iSize != aRes.iSize)) throw("Vektory nejsou stejně velké"); for(size_t i = 0; i < aRes.iSize; ++i) aRes.iData[i] = aVec1.iData[i] + aVec2.iData[i]; } template<typename TType = double> void Add(TVector<TType> &aRes, const TVector<TType> &aVec, TType aVal = 0) { if (aVec.iSize != aRes.iSize) //https://i.imgflip.com/4iktc6.jpg throw("Vektory nejsou stejně velké"); for (size_t i = 0; i < aVec.iSize; ++i) aRes.iData[i] = aVec.iData[i] + aVal; } template<typename TType = double> void DumpVector(const TVector<TType> &aVec, const char *aStr = nullptr) //tisk vektoru { if(aStr) cout << aStr << ": "; cout << "{ "; for(size_t i = 0; i < aVec.iSize; ++i) cout << aVec.iData[i] << ", "; cout << "}\n"; } int main() { //zdravím své budoucí já // Ahoj z 15.10.2020 ano jo TVector<> v; try { AllocVector(v, 10); Set(v, 9, 5.0); cout << Get(v, 9) << '\n'; TVector<int> v1, v2, v3; AllocVector(v1, 10); AllocVector(v2, 10); AllocVector(v3, 10); for(size_t i = 0; i < 10; ++i) { Set(v1, i, int(i)); Set(v2, i, int(10 + i)); } DumpVector(v1); DumpVector(v2); DumpVector(v3); Add(v3, v2, v1); // do v3 = v1 + v2 DumpVector(v1, "v1"); DumpVector(v2, "v2"); DumpVector(v3, "v3"); } catch(char aStr[]) { cout << "Vyjimka: " << aStr << '\n'; // https://pbs.twimg.com/media/D0MtIojWsAcvwOZ.jpg } catch(std::bad_alloc exc) { cout << "Vyjimka bad_alloc: " << exc.what() << '\n'; // exc.what() ... kde vznikla vyjimka } catch(...) { cout << "Obecna vyjimka\n"; } DeallocVector(v); int i = 42; cout << i++ << endl; //42 tiskne a 43 ulozi do i cout << ++i << endl; //44 tiskne a ulozi return(0); } //Pajoš - //xcharv19 // Petr Safranek - //Anonym - jooo // Samko Janecek - ahojky // Tobias - // Marketa- //Jakub Lukaszczyk - // Stejsky:už zas mám hlad //nádhera //Андрей
run
|
edit
|
history
|
help
0
Hangman
7
Say if number is prime and give its factors
DCapSurfaceDesc
Dices by GOOSE
hyy
Eight Queen
Title
Hello World
masodijegy.cpp