diff options
author | Santo Cariotti <dcariotti24@gmail.com> | 2019-11-10 12:27:07 +0100 |
---|---|---|
committer | Santo Cariotti <dcariotti24@gmail.com> | 2019-11-10 12:27:07 +0100 |
commit | e3f57a011e967e7eaffe506ebfe73d52f61e862a (patch) | |
tree | 754f3b62a1eb7f6c319acbfd531894565fa537b1 /I_anno/Programmazione_1 | |
parent | 14bc6bd07bf4395c4e487c9b3052fd1fcee54c3a (diff) |
:dizzy: Ex 15
Scrivere un metodo che preveda due parametri formali: una matrice A di stringhe ed una matrice B di short, entrambe di
Diffstat (limited to 'I_anno/Programmazione_1')
-rw-r--r-- | I_anno/Programmazione_1/ex15.cc | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/I_anno/Programmazione_1/ex15.cc b/I_anno/Programmazione_1/ex15.cc new file mode 100644 index 0000000..525882c --- /dev/null +++ b/I_anno/Programmazione_1/ex15.cc @@ -0,0 +1,41 @@ +#include <iostream> +using namespace std; + +template<int N, int M> +unique_ptr<string[]> func(string (&A)[N][M], short (&B)[N][M]) { + auto arr = unique_ptr<string[]>(new string[N]); + + for(int i = 0; i < N; ++i) { + short sum{0}; + string tmp{""}; + for(int j = 0; j < M; ++j) { + sum+=B[i][j]; + tmp+=A[i][j]; + } + + arr[i] = tmp.length() >= sum ? tmp : ""; + } + + return arr; +} + +int main() { + string A[2][3] = { + {"aab", "aA", "314"}, + {"1334", "5715", "__"}, + }; + + short B[2][3] = { + {2, 3, 0}, + {1, 15, 7} + }; + + auto x = func(A, B); + + for(int i = 0; i < 2; ++i) + cout << x[i] << ' '; + + cout << endl; + + return 0; +} |