aboutsummaryrefslogtreecommitdiff
path: root/challenge-235/deadmarshal/cpp/ch-2.cpp
diff options
context:
space:
mode:
authordeadmarshal <adeadmarshal@gmail.com>2023-09-20 16:15:49 +0330
committerdeadmarshal <adeadmarshal@gmail.com>2023-09-20 16:15:49 +0330
commit8701808a4ca1e652ba6a38eb5914d1ca6341cbf1 (patch)
tree1e65a5733be4fad5f9793ba12a6c1624281bcf88 /challenge-235/deadmarshal/cpp/ch-2.cpp
parentaee701524950403dce06a2a835452b79eacabce1 (diff)
downloadperlweeklychallenge-club-8701808a4ca1e652ba6a38eb5914d1ca6341cbf1.tar.gz
perlweeklychallenge-club-8701808a4ca1e652ba6a38eb5914d1ca6341cbf1.tar.bz2
perlweeklychallenge-club-8701808a4ca1e652ba6a38eb5914d1ca6341cbf1.zip
TWC235
Diffstat (limited to 'challenge-235/deadmarshal/cpp/ch-2.cpp')
-rw-r--r--challenge-235/deadmarshal/cpp/ch-2.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/challenge-235/deadmarshal/cpp/ch-2.cpp b/challenge-235/deadmarshal/cpp/ch-2.cpp
new file mode 100644
index 0000000000..d7cc334eae
--- /dev/null
+++ b/challenge-235/deadmarshal/cpp/ch-2.cpp
@@ -0,0 +1,38 @@
+#include<iostream>
+#include<vector>
+
+template<typename T>
+std::vector<T> duplicate_zeros(std::vector<T> &vec)
+{
+ std::vector<T> ret{};
+ for(const auto& e : vec)
+ {
+ if(ret.size() == vec.size()) break;
+ if(e == 0)
+ {
+ ret.emplace_back(0);
+ ret.emplace_back(0);
+ }
+ else ret.emplace_back(e);
+ }
+ return ret;
+}
+
+template<typename T>
+std::ostream &operator<<(std::ostream &os,
+ const std::vector<T>& vec)
+{
+ for(const auto &e : vec) os << e << ' ';
+ os << "\n";
+ return os;
+}
+
+int main()
+{
+ std::vector<int> vec1{1,0,2,3,0,4,5,0},vec2{1,2,3},vec3{0,3,0,4,5};
+ std::cout << duplicate_zeros<int>(vec1);
+ std::cout << duplicate_zeros<int>(vec2);
+ std::cout << duplicate_zeros<int>(vec3);
+ return 0;
+}
+