half of 4th seminar
This commit is contained in:
parent
ca1a5e91b4
commit
52ca816253
8 changed files with 334 additions and 0 deletions
58
seminar04_templates/02_last_digits/main.cpp
Normal file
58
seminar04_templates/02_last_digits/main.cpp
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <span>
|
||||
|
||||
using std::cout, std::endl, std::vector, std::span;
|
||||
|
||||
vector<int> lastDigits1(const vector<int>& v) {
|
||||
vector<int> result;
|
||||
size_t size = v.size();
|
||||
for(int i = 0; i < size; ++i) {
|
||||
result.push_back(v[i] % 10);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
void lastDigits2(vector<int>& v) {
|
||||
size_t size = v.size();
|
||||
for(int i = 0; i < size; ++i) {
|
||||
v[i] %= 10;
|
||||
}
|
||||
}
|
||||
|
||||
void lastDigits3(vector<int>* pv) {
|
||||
size_t size = pv->size();
|
||||
for(int i = 0; i < size; ++i)
|
||||
(*pv)[i] %= 10;
|
||||
}
|
||||
|
||||
void lastDigits4(span<int> sp) {
|
||||
size_t size = sp.size();
|
||||
for(int i = 0; i < size; ++i)
|
||||
sp[i] %= 10;
|
||||
}
|
||||
|
||||
std::ostream& operator<<(std::ostream& out, const vector<int>& v) {
|
||||
cout << "[";
|
||||
size_t size = v.size();
|
||||
for(int i = 0; i < size; ++i)
|
||||
cout << v[i] << (i == size - 1 ? "]" : " ");
|
||||
return out;
|
||||
}
|
||||
|
||||
int main() {
|
||||
vector<int> meow{1, 2, 3, 12, 45, 32,313123,3245};
|
||||
vector<int> result1 = lastDigits1(meow);
|
||||
cout << result1 << endl;
|
||||
|
||||
vector<int> result2 = meow;
|
||||
lastDigits2(result2);
|
||||
cout << result2 << endl;
|
||||
|
||||
vector<int> result3 = meow;
|
||||
lastDigits3(&result3);
|
||||
cout << result3 << endl;
|
||||
|
||||
span<int> sp = meow;
|
||||
lastDigits4(sp);
|
||||
cout << meow << endl;
|
||||
}
|
||||
Reference in a new issue