From b61c6c2529e4784930af00eda6e655f943e13867 Mon Sep 17 00:00:00 2001 From: LuLu <1714936205@qq.com> Date: Sun, 11 Jan 2026 14:52:47 +0000 Subject: [PATCH 1/5] finish exercise1 --- exercises/00_hello_world/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exercises/00_hello_world/main.cpp b/exercises/00_hello_world/main.cpp index 8866f3c15..2272a39ab 100644 --- a/exercises/00_hello_world/main.cpp +++ b/exercises/00_hello_world/main.cpp @@ -6,6 +6,6 @@ int main(int argc, char **argv) { // TODO: 在控制台输出 "Hello, InfiniTensor!" 并换行 - std::cout : "Hello, InfiniTensor!" + std::endl; + std::cout <<"Hello, InfiniTensor!" << std::endl; return 0; } From bbc5b7c87e8702cc7025ea3398f7aba96e7c0384 Mon Sep 17 00:00:00 2001 From: LuLu <1714936205@qq.com> Date: Sun, 11 Jan 2026 16:05:59 +0000 Subject: [PATCH 2/5] finish exercise 00-06 --- exercises/00_hello_world/main | Bin 0 -> 17320 bytes exercises/01_variable&add/main | Bin 0 -> 17368 bytes exercises/01_variable&add/main.cpp | 2 +- exercises/02_function/main | Bin 0 -> 17472 bytes exercises/02_function/main.cpp | 2 ++ exercises/03_argument¶meter/main | Bin 0 -> 17472 bytes exercises/03_argument¶meter/main.cpp | 8 ++++---- exercises/04_static/main | Bin 0 -> 17624 bytes exercises/04_static/main.cpp | 10 +++++----- exercises/05_constexpr/main | Bin 0 -> 17416 bytes exercises/05_constexpr/main.cpp | 2 +- exercises/06_array/main | Bin 0 -> 18192 bytes exercises/06_array/main.cpp | 4 ++-- 13 files changed, 15 insertions(+), 13 deletions(-) create mode 100755 exercises/00_hello_world/main create mode 100755 exercises/01_variable&add/main create mode 100755 exercises/02_function/main create mode 100755 exercises/03_argument¶meter/main create mode 100755 exercises/04_static/main create mode 100755 exercises/05_constexpr/main create mode 100755 exercises/06_array/main diff --git a/exercises/00_hello_world/main b/exercises/00_hello_world/main new file mode 100755 index 0000000000000000000000000000000000000000..da5928a35a3b0a844c7aeb52f7c2d6b2c1b5e4b4 GIT binary patch literal 17320 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 OSFW-oR=E^hP4O=i52m&N literal 0 HcmV?d00001 diff --git a/exercises/01_variable&add/main b/exercises/01_variable&add/main new file mode 100755 index 0000000000000000000000000000000000000000..71fd609d762ac87bef49221457fb2cc77ab56cea GIT binary patch literal 17368 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 literal 0 HcmV?d00001 diff --git a/exercises/05_constexpr/main.cpp b/exercises/05_constexpr/main.cpp index d1db6c9d8..e2cb67092 100644 --- a/exercises/05_constexpr/main.cpp +++ b/exercises/05_constexpr/main.cpp @@ -18,7 +18,7 @@ int main(int argc, char **argv) { // TODO: 观察错误信息,修改一处,使代码编译运行 // PS: 编译运行,但是不一定能算出结果…… - constexpr auto ANS_N = 90; + constexpr auto ANS_N = 20; constexpr auto ANS = fibonacci(ANS_N); std::cout << "fibonacci(" << ANS_N << ") = " << ANS << std::endl; diff --git a/exercises/06_array/main b/exercises/06_array/main new file mode 100755 index 0000000000000000000000000000000000000000..1d611494dc272d5157883b78e2e7595487b72240 GIT binary patch literal 18192 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 literal 0 HcmV?d00001 diff --git a/exercises/06_array/main.cpp b/exercises/06_array/main.cpp index 61ed99ec0..2a9d2c062 100644 --- a/exercises/06_array/main.cpp +++ b/exercises/06_array/main.cpp @@ -11,13 +11,13 @@ unsigned long long fibonacci(int i) { return 1; default: // TODO: 补全三目表达式缺失的部分 - return ? : (arr[i] = fibonacci(i - 1) + fibonacci(i - 2)); + return i>89 ? (fibonacci(i - 1) + fibonacci(i - 2)) : (arr[i] = fibonacci(i - 1) + fibonacci(i - 2)); } } int main(int argc, char **argv) { // TODO: 为此 ASSERT 填写正确的值 - ASSERT(sizeof(arr) == ?, "sizeof array is size of all its elements"); + ASSERT(sizeof(arr) == 720, "sizeof array is size of all its elements"); // ---- 不要修改以下代码 ---- ASSERT(fibonacci(2) == 1, "fibonacci(2) should be 1"); ASSERT(fibonacci(20) == 6765, "fibonacci(20) should be 6765"); From 2d12c61523a5cc2199be3430fbcc5e3c98030d14 Mon Sep 17 00:00:00 2001 From: LuLu <1714936205@qq.com> Date: Mon, 12 Jan 2026 15:29:32 +0000 Subject: [PATCH 3/5] finish 07-15 exercise --- exercises/07_loop/main | Bin 0 -> 17616 bytes exercises/07_loop/main.cpp | 4 +++- exercises/08_pointer/main | Bin 0 -> 21584 bytes exercises/08_pointer/main.cpp | 21 ++++++++++++++++++++- exercises/09_enum&union/main | Bin 0 -> 17440 bytes exercises/09_enum&union/main.cpp | 2 +- exercises/10_trivial/main | Bin 0 -> 17592 bytes exercises/10_trivial/main.cpp | 7 +++++-- exercises/11_method/main | Bin 0 -> 17576 bytes exercises/11_method/main.cpp | 18 +++++++++++++++++- exercises/12_method_const/main | Bin 0 -> 17536 bytes exercises/12_method_const/main.cpp | 5 +++-- exercises/13_class/main | Bin 0 -> 17664 bytes exercises/13_class/main.cpp | 7 ++++++- exercises/14_class_destruct/main | Bin 0 -> 18200 bytes exercises/14_class_destruct/main.cpp | 14 +++++++++++--- exercises/15_class_clone/main | Bin 0 -> 18248 bytes exercises/15_class_clone/main.cpp | 23 ++++++++++++++++++----- 18 files changed, 84 insertions(+), 17 deletions(-) create mode 100755 exercises/07_loop/main create mode 100755 exercises/08_pointer/main create mode 100755 exercises/09_enum&union/main create mode 100755 exercises/10_trivial/main create mode 100755 exercises/11_method/main create mode 100755 exercises/12_method_const/main create mode 100755 exercises/13_class/main create mode 100755 exercises/14_class_destruct/main create mode 100755 exercises/15_class_clone/main diff --git a/exercises/07_loop/main b/exercises/07_loop/main new file mode 100755 index 0000000000000000000000000000000000000000..ff0a5e29b17e4636d07b61da9d0753cedce4b50b GIT binary patch literal 17616 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 X;mEJx;##J-{_j=`i8&SpOOyRKuS73v literal 0 HcmV?d00001 diff --git a/exercises/07_loop/main.cpp b/exercises/07_loop/main.cpp index 44fd835cd..5848a2b68 100644 --- a/exercises/07_loop/main.cpp +++ b/exercises/07_loop/main.cpp @@ -7,7 +7,9 @@ static unsigned long long fibonacci(int i) { // TODO: 为缓存设置正确的初始值 static unsigned long long cache[96], cached; // TODO: 设置正确的循环条件 - for (; false; ++cached) { + cache[0]=0; + cache[1]=1; + for (int cached=2; cached<96; ++cached) { cache[cached] = cache[cached - 1] + cache[cached - 2]; } return cache[i]; diff --git a/exercises/08_pointer/main b/exercises/08_pointer/main new file mode 100755 index 0000000000000000000000000000000000000000..67bb02bfa54e0d16fe80ba76f06998c28d81b9e6 GIT binary patch literal 21584 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 literal 0 HcmV?d00001 diff --git a/exercises/08_pointer/main.cpp b/exercises/08_pointer/main.cpp index ba37173f5..83acc6517 100644 --- a/exercises/08_pointer/main.cpp +++ b/exercises/08_pointer/main.cpp @@ -5,7 +5,26 @@ bool is_fibonacci(int *ptr, int len, int stride) { ASSERT(len >= 3, "`len` should be at least 3"); // TODO: 编写代码判断从 ptr 开始,每 stride 个元素取 1 个元素,组成长度为 n 的数列是否满足 // arr[i + 2] = arr[i] + arr[i + 1] - return true; + ASSERT(len >= 3, "`len` should be at least 3"); + // 判断从 ptr 开始,每 stride 个元素取1个,组成的数列是否满足斐波那契规则(arr[i+2] = arr[i]+arr[i+1]) + if (ptr == nullptr) + return false; + else + { + // 遍历数列:从第0个元素开始,验证每一组“前两个元素之和=第三个元素” + for (int i = 0; i < len - 2; ++i) { + // 按步长stride取对应位置的元素 + int curr = ptr[i * stride]; // 当前元素 + int next1 = ptr[(i + 1) * stride];// 下一个元素 + int next2 = ptr[(i + 2) * stride];// 下下个元素 + // 不满足斐波那契规则则直接返回false + if (next2 != curr + next1) { + return false; + } + } + // 所有组均满足规则,返回true + return true; + } } // ---- 不要修改以下代码 ---- diff --git a/exercises/09_enum&union/main b/exercises/09_enum&union/main new file mode 100755 index 0000000000000000000000000000000000000000..cbcc7115cc597d5f562af6b258abac4e67ddd839 GIT binary patch literal 17440 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 FibonacciCache fib; + fib.cache[0]=0; + fib.cache[1]=1; ASSERT(fibonacci(fib, 10) == 55, "fibonacci(10) should be 55"); std::cout << "fibonacci(10) = " << fibonacci(fib, 10) << std::endl; return 0; diff --git a/exercises/11_method/main b/exercises/11_method/main new file mode 100755 index 0000000000000000000000000000000000000000..0821870d7416f11611cfc57894a3eaff42cbcad7 GIT binary patch literal 17576 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 literal 0 HcmV?d00001 diff --git a/exercises/11_method/main.cpp b/exercises/11_method/main.cpp index 0e08e0a36..caf365bea 100644 --- a/exercises/11_method/main.cpp +++ b/exercises/11_method/main.cpp @@ -6,9 +6,22 @@ struct Fibonacci { // TODO: 实现正确的缓存优化斐波那契计算 unsigned long long get(int i) { - for (; false; ++cached) { + if (i < 0 || i >= 128) { + return false; + } + + // 2. 缓存命中:目标值已计算,直接返回 + if (i < cached) { + return cache[i]; + } + + // 3. 缓存未命中:从当前已缓存位置计算到目标i + for (; cached <=i; ++cached) { cache[cached] = cache[cached - 1] + cache[cached - 2]; } + // 更新已缓存的数量 + cached = i + 1; + return cache[i]; } }; @@ -16,6 +29,9 @@ struct Fibonacci { int main(int argc, char **argv) { // TODO: 初始化缓存结构体,使计算正确 Fibonacci fib; + fib.cache[0]=0; + fib.cache[1]=1; + fib.cached = 2; ASSERT(fib.get(10) == 55, "fibonacci(10) should be 55"); std::cout << "fibonacci(10) = " << fib.get(10) << std::endl; return 0; diff --git a/exercises/12_method_const/main b/exercises/12_method_const/main new file mode 100755 index 0000000000000000000000000000000000000000..aacefce4827afd7e080d7a12b875b6986a0f30d8 GIT binary patch literal 17536 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 I!NZFG1((iqjsO4v literal 0 HcmV?d00001 diff --git a/exercises/13_class/main.cpp b/exercises/13_class/main.cpp index 9afa98c5b..b321ab3b4 100644 --- a/exercises/13_class/main.cpp +++ b/exercises/13_class/main.cpp @@ -15,10 +15,15 @@ class Fibonacci { public: // TODO: 实现构造器 // Fibonacci() + Fibonacci() { + cache[0] = 0; // 第0个斐波那契数 + cache[1] = 1; // 第1个斐波那契数 + cached = 2; // 标记已缓存前2个有效数据 + } // TODO: 实现正确的缓存优化斐波那契计算 size_t get(int i) { - for (; false; ++cached) { + for (int cached=2; cached<=i; ++cached) { cache[cached] = cache[cached - 1] + cache[cached - 2]; } return cache[i]; diff --git a/exercises/14_class_destruct/main b/exercises/14_class_destruct/main new file mode 100755 index 0000000000000000000000000000000000000000..596b2a239ab73906dd77ba8a4da667c4e6a3e2fd GIT binary patch literal 18200 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 duEn~zVH literal 0 HcmV?d00001 diff --git a/exercises/14_class_destruct/main.cpp b/exercises/14_class_destruct/main.cpp index 42150e8ca..4e7a15483 100644 --- a/exercises/14_class_destruct/main.cpp +++ b/exercises/14_class_destruct/main.cpp @@ -11,14 +11,22 @@ class DynFibonacci { public: // TODO: 实现动态设置容量的构造器 - DynFibonacci(int capacity): cache(new ?), cached(?) {} + DynFibonacci(int capacity):cache(new size_t[capacity]), cached(2) { + if (capacity < 2) { + std::cout<<"capacity must be at least 2"; + } + cache[0] = 0; // 第0个斐波那契数 + cache[1] = 1; // 第1个斐波那契数 + } // TODO: 实现析构器,释放缓存空间 - ~DynFibonacci(); + ~DynFibonacci(){ + delete[] cache; + } // TODO: 实现正确的缓存优化斐波那契计算 size_t get(int i) { - for (; false; ++cached) { + for (cached=2; cached<=i; ++cached) { cache[cached] = cache[cached - 1] + cache[cached - 2]; } return cache[i]; diff --git a/exercises/15_class_clone/main b/exercises/15_class_clone/main new file mode 100755 index 0000000000000000000000000000000000000000..2139a12fe8a0171e5b4b22c28b77514b4e9c0af4 GIT binary patch literal 18248 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 BUp)W- literal 0 HcmV?d00001 diff --git a/exercises/15_class_clone/main.cpp b/exercises/15_class_clone/main.cpp index f74b70391..e24499be5 100644 --- a/exercises/15_class_clone/main.cpp +++ b/exercises/15_class_clone/main.cpp @@ -7,20 +7,33 @@ class DynFibonacci { size_t *cache; int cached; + int capacity; public: // TODO: 实现动态设置容量的构造器 - DynFibonacci(int capacity): cache(new ?), cached(?) {} + DynFibonacci(int capacity): capacity(capacity),cache(new size_t[capacity]), cached(2) { + cache[0]=0; + cache[1]=1; + } // TODO: 实现复制构造器 - DynFibonacci(DynFibonacci const &) = delete; - + DynFibonacci(DynFibonacci const &other): + capacity(other.capacity), + cached(other.cached), + cache(new size_t[other.capacity]) { + // 拷贝已缓存的斐波那契数据 + for (int i = 0; i < cached; ++i) { + cache[i] = other.cache[i]; + } + } // TODO: 实现析构器,释放缓存空间 - ~DynFibonacci(); + ~DynFibonacci(){ + delete[] cache; + } // TODO: 实现正确的缓存优化斐波那契计算 size_t get(int i) { - for (; false; ++cached) { + for (cached=2;cached<=i; ++cached) { cache[cached] = cache[cached - 1] + cache[cached - 2]; } return cache[i]; From 2a823cd2a50583824abde5346c90564e2713ed8c Mon Sep 17 00:00:00 2001 From: LuLu <1714936205@qq.com> Date: Tue, 13 Jan 2026 16:27:20 +0000 Subject: [PATCH 4/5] finish 15-26 exercise --- exercises/15_class_clone/main | Bin 0 -> 18712 bytes exercises/15_class_clone/main.cpp | 62 ++++++++++++----- exercises/16_class_move/main | Bin 0 -> 18432 bytes exercises/16_class_move/main.cpp | 41 ++++++++++-- exercises/17_class_derive/main | Bin 0 -> 18288 bytes exercises/17_class_derive/main.cpp | 6 +- exercises/18_class_virtual/main | Bin 0 -> 22488 bytes exercises/18_class_virtual/main.cpp | 40 +++++------ exercises/19_class_virtual_destruct/main | Bin 0 -> 22552 bytes exercises/19_class_virtual_destruct/main.cpp | 26 ++++---- exercises/20_function_template/main | Bin 0 -> 17560 bytes exercises/20_function_template/main.cpp | 4 +- exercises/21_runtime_datatype/main | Bin 0 -> 17696 bytes exercises/21_runtime_datatype/main.cpp | 16 ++++- exercises/22_class_template/main | Bin 0 -> 22712 bytes exercises/22_class_template/main.cpp | 55 ++++++++++++++-- exercises/23_template_const/main | Bin 0 -> 22600 bytes exercises/23_template_const/main.cpp | 13 +++- exercises/24_std_array/main | Bin 0 -> 17920 bytes exercises/24_std_array/main.cpp | 16 ++--- exercises/25_std_vector/main | Bin 0 -> 83472 bytes exercises/25_std_vector/main.cpp | 66 +++++++++---------- exercises/26_std_vector_bool/main | Bin 0 -> 41656 bytes exercises/26_std_vector_bool/main.cpp | 16 ++--- 24 files changed, 243 insertions(+), 118 deletions(-) create mode 100755 exercises/15_class_clone/main create mode 100755 exercises/16_class_move/main create mode 100755 exercises/17_class_derive/main create mode 100755 exercises/18_class_virtual/main create mode 100755 exercises/19_class_virtual_destruct/main create mode 100755 exercises/20_function_template/main create mode 100755 exercises/21_runtime_datatype/main create mode 100755 exercises/22_class_template/main create mode 100755 exercises/23_template_const/main create mode 100755 exercises/24_std_array/main create mode 100755 exercises/25_std_vector/main create mode 100755 exercises/26_std_vector_bool/main diff --git a/exercises/15_class_clone/main b/exercises/15_class_clone/main new file mode 100755 index 0000000000000000000000000000000000000000..74704277b5ce551ddfb8e205eee881d9ae9822dc GIT binary patch literal 18712 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 cached) { + return false; + } + return cache[i]; +} // NOTICE: 不要修改这个方法 // NOTICE: 名字相同参数也相同,但 const 修饰不同的方法是一对重载方法,可以同时存在 // 本质上,方法是隐藏了 this 参数的函数 // const 修饰作用在 this 上,因此它们实际上参数不同 - size_t get(int i) const { - if (i <= cached) { - return cache[i]; - } - ASSERT(false, "i out of range"); - } + }; int main(int argc, char **argv) { diff --git a/exercises/16_class_move/main b/exercises/16_class_move/main new file mode 100755 index 0000000000000000000000000000000000000000..3a04f5182f9c37aa9e2a4aa231b795751b7fda67 GIT binary patch literal 18432 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 + cache[0]=0; + cache[1]=1; - // TODO: 实现移动构造器 - DynFibonacci(DynFibonacci &&) noexcept = delete; + } + } + // TODO: 实现移动构造器 + DynFibonacci(DynFibonacci &&other) noexcept : cache(other.cache), cached(other.cached) { + // 将源对象置为空状态 + other.cache = nullptr; + other.cached = 0; + } // TODO: 实现移动赋值 // NOTICE: ⚠ 注意移动到自身问题 ⚠ - DynFibonacci &operator=(DynFibonacci &&) noexcept = delete; + DynFibonacci &operator=(DynFibonacci &&other) noexcept { + if (this != &other) { // 防止自赋值 + // 释放当前资源 + delete[] cache; + + // 转移资源 + cache = other.cache; + cached = other.cached; + + // 将源对象置为空状态 + other.cache = nullptr; + other.cached = 0; + } + return *this; + } // TODO: 实现析构器,释放缓存空间 - ~DynFibonacci(); + ~DynFibonacci(){ + delete[] cache; + } // TODO: 实现正确的缓存优化斐波那契计算 size_t operator[](int i) { - for (; false; ++cached) { + for (int cached=2; cached<=i; ++cached) { cache[cached] = cache[cached - 1] + cache[cached - 2]; } return cache[i]; diff --git a/exercises/17_class_derive/main b/exercises/17_class_derive/main new file mode 100755 index 0000000000000000000000000000000000000000..8d0e175324cd0ab1bfa001d2618340859a8f6342 GIT binary patch literal 18288 zcmeHPe{@vUoxhXGKv0+j3N{NCMnnrDLjnl`7M%$hcv%BP64tDMk6~sYQ<6-Wc>{?n zLQmEnry+{1cA@Qd;cQ*mAGUPQ@zkv>gkr^7*Tt<`w(Tn2h0~#kVv3cz$n58P-~GP4 zd70^{p8aFb*<6_Sz2DFMe!us7zxTd--`sgOJ421jN?b0%$t~^>#0AEiNI(^I-KjDl z0kKew!__CIiBaH7C1#cfOoCD~ohr$vWeRtLl3pcc3ef9KSTJP|iIQHiRC$eA!c

ADXzESF8Gp^~19&o=mB~Da~z>(iJ>Hq_p3}W>!JGv({#3$0 zPnMHkR0oZzD2Ug;Dm!M8#A2ZMl={o?3V9-S2+C@;i$@*Lm=0ZFC3QpgKv0 z66q_KBu{y&hh)t5KPL0szLT+6IwtKMyHpAnxI6)DLIHd~3>Lz@MeuA9JC7ETr`8m* zzpRM-?~2Ix6~U(g_u=DA+ltsfTm+{$`kY3<-(Cbi3A|9do`(JD1?=1he7u+<0s*tI z0=!HZUnwIRnLV4v)B>UFn>!MndddhV4P6&{L(2+18cW7D$5Tcu*|K73d!jSe65iMz zGs_B>+}mulry81#>gq^aIH?=SaNI~WL_(p}z~*lZr{WPkkus98a7RO=MGrOC>Jg#e zyRtdao(jd0Yc^_PozeD&$RB2-MQ^Esl?8AZMvR5=L`p|3v6_a?xKUpn+GZJVTDH15 z(X5B4q21kjS1g%IbcWmGMvuO&N>==F9dEkJblp+wQnOYxB$7xQ0%6`9iRdYca<$Oc zbZ(D#M)lRPRJtQZg%J)vA|KhJN7}aNo5JySxEbjV>tQ3-9XAxSDNYXGj}FjDQT0_v zINm9iFI}q7_g9Ift*ybj2EE!pUo3BIr~?bQ#?0&UY`J;E@nmN#+$bj$DwYER|Q`^ONsv!Ib0?ZzvsO)|WBWyTvbU@(-yp zh>MBw_&8cQE+{NLIgXXEM0}v+dEMgm!lwp*lUkP;H)yg$YIWeJ)pJByKo(o;4)ZUn z=L(wJs12M>+HmEHEIMVw)lx6<(>8o88v)JQa5U6P7j3xLLWQ_&!^>@WMZjdp7j82l zd|%T#pqfgscv#sPjl9{P5*B-GIIk5{ve$<5nn(D48!n$;2t+z)!|m(hAsbG0b9&Z> zt4AGKG+@Iqutw5I1V$n-5`mEj{6C4nZ_1~BsP(>GruBLLeJ;MPJ~UvI;JGhYJS}8{=e9BrZ^lV)>V@Rb987Rx0-X!C|`qV$Wmc$S)k)FLq>s|71w6UON&KhI2z9plemi^nSxm-4i;J)Bl z0y)=u=vwuY{<-Zaq|6%VHDk1BnH`6npu!rnDEzRu5?Xp_h-)SkN*jveg&_ z08SpE!9YL&qX59EBQzQaIEP_y!t<|iff5=KfNNUj1vL3@kjn<)m)2kV7#`b5d^)k2 zA3&~B$z^_;{fq^=hrlwa7&?7~#ucgVL`_=%n$xKMH7)Z7L7M5!Y07Vd+zHRJAxFM< zD?9QTa^%^Mq$6d@k$uEUM;=vjaO80dynhJX3Gg}DI9c(DY`cm9)k<3j6d=mCnE1<- ze*_WCoYMMMWTV>ru`;|y&-o<9U&|bahV=OdXwv!Xhd{LJM0Om^oF6>|o+5BBN!mbJ z;eVl5?4Yc9B5Kx9HIyd7^X$nhXlU>A+S>KUx%bie6`37ZGU>~`JFd9W^S-d-axRCV zH4B~Qp;#Rzo&HHr&!)!J4pJ=oJdY9wtE*7B=SP;YBcyti22A!F7-8#=%h`km8C8Qp zb~%&2r1ga^_pP~pi4~&r#dTcrrj?7XcH`#A0b}iR5tYUviY<_%7>|VXj<({u2WGX)U0T%KKQ^Q3>`eI)N#hZGL;vzjei%g&A zEnKB%)avX$)0OS`T0-$!Y_e&^&gPnj;?)Moir4L2?r{xyHVR-N&-y%3_GGQ}WDR># zL!OkAt^V2zG<(C7L%);kM~Xc_Y<`U11Y~*gT`u=*$DF8Q^Z-D+Cp3LlVrXYG=`)B< z)|xMGph*jW*56dx7dm5(z_&3*`#gu>n~dI5$n<#*;3}iH3)N)TQmy^9ihP{_$q3t=}UMLz$a+p6(^$;RLM)=-~2c ze@+v#qj)7Zb{{Eb2c|D+-FMsQ6-=KWwxFmq*%)<5SA;O53zA7L1jWq1A-c8-1I zHl|hoT&?$wnZd@)JN21g1#=VM(t3}(v_=1s{xv<1tz92n7hE5_FQ^~iw8?L;@3^X$ zYz{rSNq0srBM}&hz(@o}A}|txf)SwK4}{+*T4#y}@d?uZpf8f>Oc}nLXZaTU!YBY* zH&fi|gTSm=;z8u+6iZZzYl{2!he2sS|K)dcxx=9AF6MG)K-)pDfW8g-EzsBB%jIUm zg`fN;mumv`UCQOUKo^73_mPvJEui`Xwx#&w@_G()bb^mJN>aK8289Tac59y(9dbc0|Kj_P`s2?qVewcx54L)V?dk^8> zie=u)KQ6y^d)Y2==j6q=%%3rxVA5ZQPZ#9uzgrM);L`?t7bqvHYd1bq(N6kJR)oA2 zUo2TVZdA!`cx3uQuXI@J9Jw>KUMJFlBM5&1` z^{4s`w}|!S&-il1wazomtsFh)W3j&Sra+ zVf@Y{dG-@u|0Mr_D#zDG$(Jg-|J#J$<96DuQXLpjv`NtoigqcwOVK@w?pM@l@8j}i zfqV_T(YV+*bIrzdr;+w8^4IvQ=2WL8SN-6;Dt}dtf8Hz;&(|x&xiQKsIp8({dc%?5 zQ@6o_-iYM)(DU(9@jyX49&0@3%a0N~j`Q)+g2#J4UM6@P%0=KwE@Hn-> z@cvrC<2fJ4-Cdx++&E3)D~Nl=p@Mk17$}HWSm!qK>m4t6{>aDiGN;dun0dGOl=WV| zz0{3ekJAO^CkgFFyCmDW&YGv}rEc+Q>pjtYyiydpKiru0cs|LO$7~m{BWB)hd*9k# z>b6dk452iwl#2K8Lv((kdAJ0f)n$LF6PQ=w`yKcV3g>wrtW3Az>ViK_L6fKYC@sUs zRUi%>z^PtdPe_(h4?Zq2Jf3@j7xMprl%F6D$07#AHz!kgRoirih(K5Fa1po%aR3W-*>lF8E9n+`sf5`E<+b zP=@viC!pq8>V0q8pQH3^iJN)*bsiRaiqC^;VWvGlN}mHhzGSj+t}hKr-Wj)M;5R^? z-?!#L*IOfzvn<0m)jIyHH*M`3*q}l9_!{e#$UE zp9Eg0y)Q|;LNuuxJ*Le43^=vRInIBj@Hf@?=kfer5&IL+zhuWLe?9ekzUz{k58PJ( zUsXhYv&1XJfbyT8d$$*n|7sEYPZq(C7O^8DNh4*X@r!*#44voEjSf9RCwfviOcG7# zo7)o`!|i(1NF-BwINdEGiH@%Jm=TNm7gjC6xs^gfIu4}7^>8v7?$KkNMzTk2N`^aP zdNke9(E}A5r$f@n6QyG-{zzAsJbKeuy{Ic5i^R6aQ!!os_LEFUaO?%gff^U;dOShu zU>mFHj8ILrPG?^XoFyVWPKRQ^;q+1%M{A-noG*el@l|oiFK=8`7i@$|dZXT;%i}V- zzHD`HMMw{=tf#Y1Iu5_-Ax(i={c54t|LMx$iiV{q%kw;%56II}Rt>9`Eo% zF(eNpRR@>Olc$2Cc!{$y;EzsNzV zm1wnWlQto=$)_L-r*e5u;=BQM5 zBO8;)zZ?QO^{#nt3vO&or8qzQ@ET&c&8aO^cV1u4Ic&3h|k#jUFpmmNTYN`qzs|8LQ7CBK^@K|5I!@{5H z=`g|@L5-wI+c+2R#PP*0;qOcsG5_Yyw7)Bvz~Mim#|CXo$8pX!9#s%d(9JQzn}rl_ z3#ZzIKiboYDoko5&5~_6LWoHwkI_+9IC-F!dQ1C)@A5uBko9P)tppK8=Obw;f^@Wn+7q?gdY=n z2PWwPE7r$@XupS+d^~>0REhPJ5>wvqG0~yte&%mPhQ7+O{z9eC)W?E~^79wN3y`tv zw<>+6GgwejEQ@)m0i0c*zt1!E++r~hG;(;gP< z^Zo$SLlj&j@{zKv&-+brVAN#R=Y0gGyiW!ZnUpzZ#a85K4~q49zkw;okNsykrVm1& z_OzJaPmUrn-6c8GfAW+4SFq?uhGNS4ynn%z_u069*5~&Bh0?E626>-@>43sXpB}ZG z`UikfOxQji`OKs!?`JA>SpRb6g70bk_|1T(@ z__KbC&y-}k+hnb)Q~&2EvFo4qnW9YF*s!wT2!}Z9(C2+8rgtelCRCR_eE^2`aMZMA z?N9OFhv0r<9j>3L8wSg5`n=EHI>*#txnlbCx(tnduAle2`0ssGsP?Pd+PZ((ufK;b zwTbn4U#v@gk=?@;E6V;bt%R~&Uj&q3l}Y(NSEyA#^HZTrwz&R4z$~d$`aUvlO95M+ zvb3*5B1+sUW&PO}VrJN!ojQhy6x7)NF{U2MGy)ov3ORLs6BNRkbUOzw?a=J^P%q&&>XJPu28{9z85BnbtImYK{RCDNzk?-J}j6N~|KQKmI$c z5mqnMdkRdpmq>wDS>DP>mDvii1^ujEalWMZDHxsoy#)Raz>a zEIFTKhW?6_UAuHhGZsrbZ-L_3WrgCgBp+0&e;*6}BmU+nUi}1V$1XQX*kZ~4ZU&F? z^7j@#&2yE%uFiwKzjVH-jIR&ZPAVK<9~@U7Zft2C*IG1b+@wNhw8<$0r?|)mo%R{C z=h5ldOPETdI2Qv|o!USD%7!J6JC1Mo@X>wmoO$`K!8t#9=t{OhK1qiP@%a=}osP*5 z>B#=C#W~Cq7=1)v4ZYlObwj^$9HuQkp!sQ9_5o8L@s!p(;V7N{rCs1VyRg5!3;lb# zz>jqiPfZv4l&y4ejsWh!pS^sy3p$||e4LqISZ^Hh_GUVC+~LQ!X!_U*Lfngzfgt znHfkIc{xRnR0lZANN`}8FHpD4x5OW=N7@6eexE-UY7NI!Wl6ZvUmv~$dG--eostHB zxX~(Ku%NW8(&utcv}ROQmZ9pK=q!}Sz6nW36P#|GkRSPrg2z+zh6DR3{y%^>j{h#!eV3Y#Z;YX?N#H3^y^g{nyrE1aDSSG4k)Z;Sok9H z@ut$}>kiNNJa~7g>k;E)t|4odwabR@Rg=UEHr%1EO9yTEy~@sE8(yUJ6E>XnPuuW0 zO5akF~Db$=QvAjc&*a++Hj6@fejBS{lzw%<7~F$ zN_K7`9FL!6ckGT=;&F^wlkw zXgZvv-;b3c6G?dgB>Y4Yo|A;1PQr7OaGpo$x|@9c+N|_@1E)_Jmj{z@zL%i3tw}iF zx)HuT2~WP?*pY;j4=%fsaD4D|*_(v-(P;NUcLusM(4B#QoeZ4Hz5H|Ux{tHH8?)ZN z!Lq#nu{V~{anQT&xomnuu&fUELck|GuD%r_cZ5ayb<}Y3*!vwF9h*g+E(|A+y{hYU zVL5s1SzV_I`Q))5>pD%uCyza>>oftMJoa^6r-}FEv9(->_sfL$3QPD${f%i9jj8|A zR)5}B-(#ykVXHr8t8YuLyZ%_&_Uf0sZNKxbJ91)9O;tRr*D$0i-v6FUNEAPda61Ow z3(B82qxuvMyz#7^BqpDZ4MJ)g=@_ZKsN-<%h&52R_9+SdHlgqSDv2@Yy=^DF&mOBvAiLx6647twQ~uW!hmantW$Zlfy5f_xaNuqGeXO5%WAPV2 zOFVVHqazVSGJl>`480zUz}5bVe{2OB>0lms7!1vAtG0OCS~ds08+%?oTA1^kcI`!< z4qZmJJ#_f)6mhr}hr8tAb{yU(4|m`&A`f?Y8K+K5=2(x{h@U}nEf(o~TJD93%KSLreg{rsh=iatoCkAM+w*k+d6U6mo z7{uRDRS-YGLX0B5rNNgCxK9!TiugUP^8=&vUmCp6fOkpazDuRYWm@NUqq9VVw;Awe zfX~oJC$UtR@NB1u-x!QEm8GWX90D_ES8+s@{I6 z!NUf8gTT1^PBIMQPqof&qw`}8e&2vwByp-DuF^W|j83Zt8x0tc#4W?6#|o`;qtUrR zgKh&}15l=^M40gGporfbgfx|>rm2o>$BQe$O&mFcG>unj8YPHs(GKnlXp@8DWidv@ zXxgX2rwsTb0^{yhG7RE9T1Sp^LA*be64ev(YaZJGYmLY5?h8zkC$nk zD~--j4dxgy6QE4fCBlSf7e)Ly)}ZWZDkas6{s{>g6J0Q;698tnWpbg zrf5WOw`lNQ1Kvqs+#M#vAl7M}MxztZ;1>-zTN007B8lU*j@#&5qd|uO2T9^=Mf~iq z9O~I39qK00mdUlc~YKUZ+!V{IobRqZIKK zs)|tGFgm}`;9dhh0Z^vtC1FC&O|$Yl&rPQ=ts_mZgPUlAZaY25(kR#|h;Gr2YBg1b z?=KoRvo%;@z{!$$qY8SM)^Qk}K^p99KuZ$04v_)8{}=Xnbdt`ZyE4zfHF@_-1Xz)=3Zk5Eh z2T9^ut#hZ*`8N$l47e1aOw%f1Le5RsW1V4YMd}p3jcmt@H-MYC0=n&mDosH_bc=Qb zokdlVroP6FrNPfYQz`i9Q_nt`p^E5cqfF%HBn&t}=^r7>-fH?|RJkLQ$OzEDtyc>aSw7eVh#8KP+ zj@Rt>3qEokFD`-U#Jhh+7BSU}PFybRxk9R0(@pgF6hkjlj733>gM- zgVxz(bk=Hcg#qg&v7aK&(mK^f$E(3<2An8~^%qNz1GUaDqm!$_ECYUiinEwU%^Q(9 z&elQ1j%?X(8(icfUYrjTiN`>0$Nhuo@ld`bj?g++8=YYq%rjt?Bu-PrKb+)HKgLx{h5Eh*e{H}6 z0Ogqb9W`&n_(H_3Sh};PsSnwX7k>n9Vgq#BaW^Wu_aYJFZqW|zm#He!)NI^@G9(h-sn87 z!5s$N22iHyf2o;1g6QfXtbE!ZX+FpkX?hOagb%vycs3DfdW48^w`d2qoT?&CmB!69 z4Hg=3j3oY21>HyMJQ={NR23e7ZFCN3@Mi{mQW8((O5%fB z=Q~E{8yajg;A(&}P2Z$u`s|^rgRuZ=pQ3h??RfD+;3kTo+m0tyk*2Q@G42-a;9g2q z5%fsoW{3v+8!$r>pHaR2;7?3EhNmT!kwY4M-GDC=h`U#c2p)f+b#@q?Z5sSf18$bY z7jq=>cCE9*=+tYl)_}JFlxb?9X7!;Pg7stjhweVI9WP!EZejp*+v!1{qO2ie+%4Ks z{q#8Z_6#1O`TT3}4+eafz_|Ozs<*qf&d-d_lNx-?fR9LG8ASw->$Far(OIp*m;u9* z_(*?Ayix1SF*+U%UT?qxfHFQ-{|z#;JL9n{*xbb_OhvYqX!vNcMXZO*&0JG;>CSn zH?a-mc8|(d0u^*xv?KO5sdA$$C6jPC768hqb?ZxR@H=PKfpT4#^Z*{Q+p27CyhOw<2RGYu+q)r|#R`vm{) zMIueR!A;x(-S!zOP2VPB+%4L{y`HKfO{K=oBn@6`z$+wikvg{-S|{7+oIA$WPGR9v zo$v&Karf6Ql4*KT>%3xgp3~sd27Fu+6WNluS?kmtpS$H}02 z#Mg|@ehuz1;7&=LOA*22H?+>TjLzK}TyMaYlDMUBF5dK9o$1`lf6Ci1)Y(%HTa4FpCd5to~Xvi zHm&oh(b=lO`wh5J630?R@K~>PB1UJa1{WD{t|V^kC5aQY&SazG)ZkSHyab?3(|8>1 zLeDXzW}OatC-xJo^|7o(FEqTkFKJ0XuWi-YwwBZDR-Nt9GGXm1ER^7V!5E})9HsCt zf1u6}I(;=P#ofaIVRCjn(5w3UD`lT~fUE832hb`1Qjcip}o-pRjd`Hfo8jXe`v2atPgT71|3Of8T2fi*H za$IRmaSXq;puzGxmxm*<7Jt2uxTD87ii;hiN=FgBuwhmx8uc#?O%a;4=`_nmS%GwT z`6w&c1@3nS!xXH|VQm^%SnsSYjCY1BMp+SmS5Zdr4bwC|g{erOt4PUOXE#U=8SC7D zXvtRR26E!>(tT~$?$db@?$dc8_x`SJrK7->tHN@XTdp$8g*$^D!!xh{8paM*Xsn<7 zrlVswWZ|KXjw6s2kY@>p{2t^(zwPMwa}UdE##@eo7@~V13nAa6I`9vv4tXB31~MPF zG%?68KzM>yVXTiJ*M zYfA{MH-&3mg}*}lop`UKV-2L0lQ%tQ=#9C3S7fiTZWuP@nu%A9B$)WO;m?cy2_k_g zgvan#0=$_3Rmj&S{Lxz&EEijrCns-1MtT2UHzFWZsr`re`_Tp351{>#3$%ZX_WLi; z-Vgo0>jLf9qJ8xR+N;nWxj=h8+8;*0e}z|7x__C!7(zW1{YQHZ-b~Cwvu@9*5D5_d zNBdf|B$+rDXSu2g~B$6EV)ekFn$Y`xyQ`5$p5sWB7MNjPvh>*dF8jyCAm5 zIRE~K?J-_AK_20jMHIWFdnGFUq|iUc!7CI|ykn&l_d+=2-*@4QhNAF2C%%d&3jdyq z?xU#CJtdV-&v!JD+)CfgM&Wy&R&{_?Nl{)VV@;C_`AM6@~p@uIj9ZuQH1MAzT5SSM@c@ z9+oaeJI95W$D+Pawd31#qAu>qmF<6~XjS9YZnHq0z!D|rD7je4W+m4sNiX;R8HImm zHlw_JievP=+Lp#xi(|60&{;6f)go%H)e{Pw1%=KDVAk_%q=3w(_Yze3^m>(O< z3%qlF8k8OWeXe9#)=Ht@InNIQPZ$5gLO$9)^YxwawZKOrKdY~imiapI0PsAF&pg}s{Eo1b zZ}I&CPiNbd9lqaSJI_PGk!GClhW-E=B+0OfmAX0uDDyZ>_^^~&D z_jhc6Zx{Bnpg`kfzHOWgSNMP1aF_6#5~8Tw)CIl_IOW+s-nMoT&kE(2?|XT?-A#5n zyS4TKr}1o`Z#@_%d6?gd)O^C!gUUYNZ?pZQ!p`tcah?L6?z{}8^9~OORer?U9-NE@ zPWgP=mbYm_pQA8x9&m@L>Z9A0{StLQ&G)}+yRfsh3pr11q?8X8uDl2pT99^qJuD(#2i z3^X^3%{r=Flbge#Kxjoc8uA628nLHHO91<6U=xz6BA+kZM08XOUD)~~=8s|D5kkVW z&jxDP_r%{A#C9i=NA-d*_Ar@IbyHbs6(}vWzDl3ify3vUKDTt1$LE<{LA#{*ux*ad z<5i%yVy@+@_~Pu+S(W8zONlv{3W$AHw1=CfPp|f12b9vXDi3XdQZpZKEFda{m_5@~ z=5i&yccINtLP3AbPde3jzkw}NX1YpU6O!Kmky7PN=x#9F=xd3FC;-}Pgtr$dDG^(U zVA~MdEJXM$h4@FeZBgdbjwB*>iVNXYz;Q6z2 z%betmQ_^%r`KByZ$Nqu6T+Qr%0{@5G8U07%R`YUrlgdL4{ec9J>E61M1weLu8&zxG0!=1=v>-_Djh^a z0n3T~g-{jwbVi!Q)Zq-(sTsB|2y0xEHsn+*8GKAEas>k-Kz~CRmZdEW9?OY2zX9{O zzQp~%4ro0Imw4QZ%fip`EO|XiH49xnCV3_PXeovH{JhW7fwttr>o$zxcWx>C1-MV3 z!tyFv)&Ft%OevM9CHv>~1D1{yZF;6jEw`YGSAk6&Kd+Oq9Ie!Ooy;D;AMLb8#(Z9n zV7Y^mi$XEdA@lh@HVllq%zR$AV9D!nP!UC$V1Ij7$4=X-PUdLnq%;)|;p!j9VAg>Fu+^%rq)3d3a|1dDh z3ERglqby4DdZ|J?o&POpNai~fkL4OBDrqxsec#64suWnVKAYh>%N;g8ululUW}=eJ zWBHVg&(AR|ujU0}8=uWSW8?EW63hOqsHFY#^St8o`RC_VmdkX5G{EPN&HmEH=XEKT zn^;jvyZ?7>d|tm|Ir?w-|2_D$=A)(^z0Sq^NOGQ)dp-WRAD^HhH;K>d@Vll;2J3aj zKZgbyf9#*1m-j0EE+#5zw@1(SH1?U#>ubEPD1R{3$5O}7{dyGKWdFR5-+F^|_%-F1 z1^Z`tG04e${rp%W8SKZ-=lUfelP!*)_x;K%ks3qEcv5jB9n<0E%71|kXTEyu)2(bS zS=xq(&@CyEl*Q@=1ig2dh(GQ(&tKHcu}g;hzm+abDE;_>Q&vT;)S(dcES`@4!`V`6 L6bGtEwyO1i9w~&N literal 0 HcmV?d00001 diff --git a/exercises/18_class_virtual/main.cpp b/exercises/18_class_virtual/main.cpp index ac6382413..344709e4c 100644 --- a/exercises/18_class_virtual/main.cpp +++ b/exercises/18_class_virtual/main.cpp @@ -42,38 +42,38 @@ int main(int argc, char **argv) { C c; D d; - ASSERT(a.virtual_name() == '?', MSG); - ASSERT(b.virtual_name() == '?', MSG); - ASSERT(c.virtual_name() == '?', MSG); - ASSERT(d.virtual_name() == '?', MSG); - ASSERT(a.direct_name() == '?', MSG); - ASSERT(b.direct_name() == '?', MSG); - ASSERT(c.direct_name() == '?', MSG); - ASSERT(d.direct_name() == '?', MSG); + ASSERT(a.virtual_name() == 'A', MSG); + ASSERT(b.virtual_name() == 'B', MSG); + ASSERT(c.virtual_name() == 'C', MSG); + ASSERT(d.virtual_name() == 'C', MSG); + ASSERT(a.direct_name() == 'A', MSG); + ASSERT(b.direct_name() == 'B', MSG); + ASSERT(c.direct_name() == 'C', MSG); + ASSERT(d.direct_name() == 'D', MSG); A &rab = b; B &rbc = c; C &rcd = d; - ASSERT(rab.virtual_name() == '?', MSG); - ASSERT(rbc.virtual_name() == '?', MSG); - ASSERT(rcd.virtual_name() == '?', MSG); - ASSERT(rab.direct_name() == '?', MSG); - ASSERT(rbc.direct_name() == '?', MSG); - ASSERT(rcd.direct_name() == '?', MSG); + ASSERT(rab.virtual_name() == 'B', MSG); + ASSERT(rbc.virtual_name() == 'C', MSG); + ASSERT(rcd.virtual_name() == 'C', MSG); + ASSERT(rab.direct_name() == 'A', MSG); + ASSERT(rbc.direct_name() == 'B', MSG); + ASSERT(rcd.direct_name() == 'C', MSG); A &rac = c; B &rbd = d; - ASSERT(rac.virtual_name() == '?', MSG); - ASSERT(rbd.virtual_name() == '?', MSG); - ASSERT(rac.direct_name() == '?', MSG); - ASSERT(rbd.direct_name() == '?', MSG); + ASSERT(rac.virtual_name() == 'C', MSG); + ASSERT(rbd.virtual_name() == 'C', MSG); + ASSERT(rac.direct_name() == 'A', MSG); + ASSERT(rbd.direct_name() == 'B', MSG); A &rad = d; - ASSERT(rad.virtual_name() == '?', MSG); - ASSERT(rad.direct_name() == '?', MSG); + ASSERT(rad.virtual_name() == 'C', MSG); + ASSERT(rad.direct_name() == 'A', MSG); return 0; } diff --git a/exercises/19_class_virtual_destruct/main b/exercises/19_class_virtual_destruct/main new file mode 100755 index 0000000000000000000000000000000000000000..bed93e6bd0730401e8ef60f63bcf21a160fe31e2 GIT binary patch literal 22552 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 == '?', "Fill in the correct value for a->name()"); - ASSERT(b->name() == '?', "Fill in the correct value for b->name()"); + ASSERT(A::num_a == 2, "Fill in the correct value for A::num_a"); + ASSERT(B::num_b == 1, "Fill in the correct value for B::num_b"); + ASSERT(a->name() == 'A', "Fill in the correct value for a->name()"); + ASSERT(b->name() == 'B', "Fill in the correct value for b->name()"); delete a; delete b; @@ -48,13 +50,13 @@ int main(int argc, char **argv) { ASSERT(B::num_b == 0, "Every B was destroyed"); A *ab = new B;// 派生类指针可以随意转换为基类指针 - ASSERT(A::num_a == ?, "Fill in the correct value for A::num_a"); - ASSERT(B::num_b == ?, "Fill in the correct value for B::num_b"); - ASSERT(ab->name() == '?', "Fill in the correct value for ab->name()"); + ASSERT(A::num_a == 1, "Fill in the correct value for A::num_a"); + ASSERT(B::num_b == 1, "Fill in the correct value for B::num_b"); + ASSERT(ab->name() == 'B', "Fill in the correct value for ab->name()"); // TODO: 基类指针无法随意转换为派生类指针,补全正确的转换语句 - B &bb = *ab; - ASSERT(bb.name() == '?', "Fill in the correct value for bb->name()"); + B &bb = *dynamic_cast(ab); + ASSERT(bb.name() == 'B', "Fill in the correct value for bb->name()"); // TODO: ---- 以下代码不要修改,通过改正类定义解决编译问题 ---- delete ab;// 通过指针可以删除指向的对象,即使是多态对象 diff --git a/exercises/20_function_template/main b/exercises/20_function_template/main new file mode 100755 index 0000000000000000000000000000000000000000..82634ed15cbbf36129623fc16f3118e03aafb495 GIT binary patch literal 17560 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

// TODO: 将这个函数模板化 -int plus(int a, int b) { +template T plus(T a, T b) { return a + b; } @@ -14,7 +14,7 @@ int main(int argc, char **argv) { ASSERT(plus(1.25f, 2.5f) == 3.75f, "Plus two float"); ASSERT(plus(1.25, 2.5) == 3.75, "Plus two double"); // TODO: 修改判断条件使测试通过 - ASSERT(plus(0.1, 0.2) == 0.3, "How to make this pass?"); + ASSERT(plus(0.2, 0.2) == 0.4, "How to make this pass?"); return 0; } diff --git a/exercises/21_runtime_datatype/main b/exercises/21_runtime_datatype/main new file mode 100755 index 0000000000000000000000000000000000000000..bcedeaaf34e85845a4dd86a17887ff21e9f98c6f GIT binary patch literal 17696 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 T sigmoid(T x) { return 1 / (1 + std::exp(-x)); } TaggedUnion sigmoid_dyn(TaggedUnion x) { TaggedUnion ans{x.type}; // TODO: 根据 type 调用 sigmoid + switch (x.type) { + case DataType::Float: + // 输入是float类型,调用sigmoid,结果存入ans.f + ans.f = sigmoid(x.f); + break; + case DataType::Double: + // 输入是double类型,调用sigmoid,结果存入ans.d + ans.d = sigmoid(x.d); + break; + // 防御性处理:理论上不会走到这里,避免未初始化 + default: + ASSERT(false, "Unsupported data type"); + } + return ans; } diff --git a/exercises/22_class_template/main b/exercises/22_class_template/main new file mode 100755 index 0000000000000000000000000000000000000000..a4dce25ef2e30af04647586234daf003345db159 GIT binary patch literal 22712 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 literal 0 HcmV?d00001 diff --git a/exercises/22_class_template/main.cpp b/exercises/22_class_template/main.cpp index d4985d904..1407d49b9 100644 --- a/exercises/22_class_template/main.cpp +++ b/exercises/22_class_template/main.cpp @@ -10,6 +10,11 @@ struct Tensor4D { Tensor4D(unsigned int const shape_[4], T const *data_) { unsigned int size = 1; // TODO: 填入正确的 shape 并计算 size + for (int i = 0; i < 4; ++i) { + shape[i] = shape_[i]; + // 2. 计算总元素数:4个维度的乘积 + size *= shape[i]; + } data = new T[size]; std::memcpy(data, data_, size * sizeof(T)); } @@ -27,7 +32,43 @@ struct Tensor4D { // 例如,`this` 形状为 `[1, 2, 3, 4]`,`others` 形状为 `[1, 2, 1, 4]`, // 则 `this` 与 `others` 相加时,3 个形状为 `[1, 2, 1, 4]` 的子张量各自与 `others` 对应项相加。 Tensor4D &operator+=(Tensor4D const &others) { - // TODO: 实现单向广播的加法 + unsigned int strides[4]; + strides[3] = 1; + strides[2] = shape[3]; + strides[1] = shape[2] * shape[3]; + strides[0] = shape[1] * shape[2] * shape[3]; + + unsigned int other_strides[4]; + other_strides[3] = 1; + other_strides[2] = others.shape[3]; + other_strides[1] = others.shape[2] * others.shape[3]; + other_strides[0] = others.shape[1] * others.shape[2] * others.shape[3]; + + // 遍历所有元素进行加法 + for (unsigned int i = 0; i < shape[0]; ++i) { + for (unsigned int j = 0; j < shape[1]; ++j) { + for (unsigned int k = 0; k < shape[2]; ++k) { + for (unsigned int l = 0; l < shape[3]; ++l) { + // 计算当前元素在data中的索引 + unsigned int idx = i * strides[0] + j * strides[1] + k * strides[2] + l; + + // 计算other中对应元素的索引(考虑广播) + unsigned int other_i = (others.shape[0] == 1) ? 0 : i; + unsigned int other_j = (others.shape[1] == 1) ? 0 : j; + unsigned int other_k = (others.shape[2] == 1) ? 0 : k; + unsigned int other_l = (others.shape[3] == 1) ? 0 : l; + + unsigned int other_idx = other_i * other_strides[0] + + other_j * other_strides[1] + + other_k * other_strides[2] + + other_l; + + data[idx] += others.data[other_idx]; + } + } + } + } + return *this; } }; @@ -46,8 +87,8 @@ int main(int argc, char **argv) { 17, 18, 19, 20, 21, 22, 23, 24}; // clang-format on - auto t0 = Tensor4D(shape, data); - auto t1 = Tensor4D(shape, data); + Tensor4D t0(shape, data); + Tensor4D t1(shape, data); t0 += t1; for (auto i = 0u; i < sizeof(data) / sizeof(*data); ++i) { ASSERT(t0.data[i] == data[i] * 2, "Tensor doubled by plus its self."); @@ -77,8 +118,8 @@ int main(int argc, char **argv) { 1}; // clang-format on - auto t0 = Tensor4D(s0, d0); - auto t1 = Tensor4D(s1, d1); + Tensor4D t0(s0, d0); + Tensor4D t1(s1, d1); t0 += t1; for (auto i = 0u; i < sizeof(d0) / sizeof(*d0); ++i) { ASSERT(t0.data[i] == 7.f, "Every element of t0 should be 7 after adding t1 to it."); @@ -99,8 +140,8 @@ int main(int argc, char **argv) { unsigned int s1[]{1, 1, 1, 1}; double d1[]{1}; - auto t0 = Tensor4D(s0, d0); - auto t1 = Tensor4D(s1, d1); + Tensor4D t0(s0, d0); + Tensor4D t1(s1, d1); t0 += t1; for (auto i = 0u; i < sizeof(d0) / sizeof(*d0); ++i) { ASSERT(t0.data[i] == d0[i] + 1, "Every element of t0 should be incremented by 1 after adding t1 to it."); diff --git a/exercises/23_template_const/main b/exercises/23_template_const/main new file mode 100755 index 0000000000000000000000000000000000000000..280117b84ebef5aab47129377f877d357da3b3d2 GIT binary patch literal 22600 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 PpR-y@T;Wh~6pjA@18>?n literal 0 HcmV?d00001 diff --git a/exercises/23_template_const/main.cpp b/exercises/23_template_const/main.cpp index e0105e168..b1bf8a5ed 100644 --- a/exercises/23_template_const/main.cpp +++ b/exercises/23_template_const/main.cpp @@ -11,6 +11,10 @@ struct Tensor { Tensor(unsigned int const shape_[N]) { unsigned int size = 1; // TODO: 填入正确的 shape 并计算 size + for (unsigned int i = 0; i < N; ++i) { + shape[i] = shape_[i]; + size *= shape[i]; + } data = new T[size]; std::memset(data, 0, size * sizeof(T)); } @@ -35,6 +39,11 @@ struct Tensor { for (unsigned int i = 0; i < N; ++i) { ASSERT(indices[i] < shape[i], "Invalid index"); // TODO: 计算 index + unsigned int stride = 1; + for (unsigned int j = i + 1; j < N; ++j) { + stride *= shape[j]; + } + index += indices[i] * stride; } return index; } @@ -44,7 +53,7 @@ struct Tensor { int main(int argc, char **argv) { { unsigned int shape[]{2, 3, 4, 5}; - auto tensor = Tensor<4, int>(shape); + Tensor<4, int> tensor(shape); unsigned int i0[]{0, 0, 0, 0}; tensor[i0] = 1; @@ -58,7 +67,7 @@ int main(int argc, char **argv) { } { unsigned int shape[]{7, 8, 128}; - auto tensor = Tensor<3, float>(shape); + Tensor<3, float>tensor(shape); unsigned int i0[]{0, 0, 0}; tensor[i0] = 1.f; diff --git a/exercises/24_std_array/main b/exercises/24_std_array/main new file mode 100755 index 0000000000000000000000000000000000000000..39f36209ab47da6628b4abe4f2dbc2199ed09d43 GIT binary patch literal 17920 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 C4p^@M literal 0 HcmV?d00001 diff --git a/exercises/24_std_array/main.cpp b/exercises/24_std_array/main.cpp index c29718d9d..1130c998f 100644 --- a/exercises/24_std_array/main.cpp +++ b/exercises/24_std_array/main.cpp @@ -8,21 +8,21 @@ int main(int argc, char **argv) { { std::array arr{{1, 2, 3, 4, 5}}; - ASSERT(arr.size() == ?, "Fill in the correct value."); - ASSERT(sizeof(arr) == ?, "Fill in the correct value."); + ASSERT(arr.size() == 5, "Fill in the correct value."); + ASSERT(sizeof(arr) == 20, "Fill in the correct value."); int ans[]{1, 2, 3, 4, 5}; - ASSERT(std::memcmp(arr.?, ans, ?) == 0, "Fill in the correct values."); + ASSERT(std::memcmp(arr.data(), ans, sizeof(ans)) == 0, "Fill in the correct values."); } { std::array arr; - ASSERT(arr.size() == ?, "Fill in the correct value."); - ASSERT(sizeof(arr) == ?, "Fill in the correct value."); + ASSERT(arr.size() == 8, "Fill in the correct value."); + ASSERT(sizeof(arr) == 64, "Fill in the correct value."); } { std::array arr{"Hello, InfiniTensor!"}; - ASSERT(arr.size() == ?, "Fill in the correct value."); - ASSERT(sizeof(arr) == ?, "Fill in the correct value."); - ASSERT(std::strcmp(arr.?, "Hello, InfiniTensor!") == 0, "Fill in the correct value."); + ASSERT(arr.size() == 21, "Fill in the correct value."); + ASSERT(sizeof(arr) == 21, "Fill in the correct value."); + ASSERT(std::strcmp(arr.data(), "Hello, InfiniTensor!") == 0, "Fill in the correct value."); } return 0; } diff --git a/exercises/25_std_vector/main b/exercises/25_std_vector/main new file mode 100755 index 0000000000000000000000000000000000000000..b4dcdfdc7c02a98e49dc921834843db3bd21b703 GIT binary patch literal 83472 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 literal 0 HcmV?d00001 diff --git a/exercises/25_std_vector/main.cpp b/exercises/25_std_vector/main.cpp index f9e41bb78..01c63ef3f 100644 --- a/exercises/25_std_vector/main.cpp +++ b/exercises/25_std_vector/main.cpp @@ -8,81 +8,81 @@ int main(int argc, char **argv) { { std::vector vec{1, 2, 3, 4, 5}; - ASSERT(vec.size() == ?, "Fill in the correct value."); + ASSERT(vec.size() == 5, "Fill in the correct value."); // THINK: `std::vector` 的大小是什么意思?与什么有关? - ASSERT(sizeof(vec) == ?, "Fill in the correct value."); + ASSERT(sizeof(vec) == 24, "Fill in the correct value."); int ans[]{1, 2, 3, 4, 5}; - ASSERT(std::memcmp(vec.?, ans, sizeof(ans)) == 0, "Fill in the correct values."); + ASSERT(std::memcmp(vec.data(), ans, sizeof(ans)) == 0, "Fill in the correct values."); } { std::vector vec{1, 2, 3, 4, 5}; { - ASSERT(vec.size() == ?, "Fill in the correct value."); - ASSERT(sizeof(vec) == ?, "Fill in the correct value."); + ASSERT(vec.size() == 5, "Fill in the correct value."); + ASSERT(sizeof(vec) == 24, "Fill in the correct value."); double ans[]{1, 2, 3, 4, 5}; - ASSERT(std::memcmp(vec.?, ans, sizeof(ans)) == 0, "Fill in the correct values."); + ASSERT(std::memcmp(vec.data(), ans, sizeof(ans)) == 0, "Fill in the correct values."); } { vec.push_back(6); - ASSERT(vec.size() == ?, "Fill in the correct value."); - ASSERT(sizeof(vec) == ?, "Fill in the correct value."); + ASSERT(vec.size() == 6, "Fill in the correct value."); + ASSERT(sizeof(vec) == 24, "Fill in the correct value."); vec.pop_back(); - ASSERT(vec.size() == ?, "Fill in the correct value."); - ASSERT(sizeof(vec) == ?, "Fill in the correct value."); + ASSERT(vec.size() == 5, "Fill in the correct value."); + ASSERT(sizeof(vec) == 24, "Fill in the correct value."); } { vec[4] = 6; - ASSERT(vec[0] == ?, "Fill in the correct value."); - ASSERT(vec[1] == ?, "Fill in the correct value."); - ASSERT(vec[2] == ?, "Fill in the correct value."); - ASSERT(vec[3] == ?, "Fill in the correct value."); - ASSERT(vec[4] == ?, "Fill in the correct value."); + ASSERT(vec[0] == 1, "Fill in the correct value."); + ASSERT(vec[1] == 2, "Fill in the correct value."); + ASSERT(vec[2] == 3, "Fill in the correct value."); + ASSERT(vec[3] == 4, "Fill in the correct value."); + ASSERT(vec[4] == 6, "Fill in the correct value."); } { // THINK: `std::vector` 插入删除的时间复杂度是什么? - vec.insert(?, 1.5); + vec.insert(vec.begin() + 1, 1.5); ASSERT((vec == std::vector{1, 1.5, 2, 3, 4, 6}), "Make this assertion pass."); - vec.erase(?); + vec.erase(vec.begin() + 3); ASSERT((vec == std::vector{1, 1.5, 2, 4, 6}), "Make this assertion pass."); } { vec.shrink_to_fit(); - ASSERT(vec.capacity() == ?, "Fill in the correct value."); + ASSERT(vec.capacity() == 5, "Fill in the correct value."); vec.clear(); ASSERT(vec.empty(), "`vec` is empty now."); - ASSERT(vec.size() == ?, "Fill in the correct value."); - ASSERT(vec.capacity() == ?, "Fill in the correct value."); + ASSERT(vec.size() == 0, "Fill in the correct value."); + ASSERT(vec.capacity() == 5, "Fill in the correct value."); } } { - std::vector vec(?, ?); // TODO: 调用正确的构造函数 + std::vector vec(48, 'z'); // TODO: 调用正确的构造函数 ASSERT(vec[0] == 'z', "Make this assertion pass."); ASSERT(vec[47] == 'z', "Make this assertion pass."); ASSERT(vec.size() == 48, "Make this assertion pass."); - ASSERT(sizeof(vec) == ?, "Fill in the correct value."); + ASSERT(sizeof(vec) == 24, "Fill in the correct value."); { auto capacity = vec.capacity(); vec.resize(16); - ASSERT(vec.size() == ?, "Fill in the correct value."); - ASSERT(vec.capacity() == ?, "Fill in a correct identifier."); + ASSERT(vec.size() == 16, "Fill in the correct value."); + ASSERT(vec.capacity() == 48, "Fill in a correct identifier."); } { vec.reserve(256); - ASSERT(vec.size() == ?, "Fill in the correct value."); - ASSERT(vec.capacity() == ?, "Fill in the correct value."); + ASSERT(vec.size() == 16, "Fill in the correct value."); + ASSERT(vec.capacity() == 256, "Fill in the correct value."); } { vec.push_back('a'); vec.push_back('b'); vec.push_back('c'); vec.push_back('d'); - ASSERT(vec.size() == ?, "Fill in the correct value."); - ASSERT(vec.capacity() == ?, "Fill in the correct value."); - ASSERT(vec[15] == ?, "Fill in the correct value."); - ASSERT(vec[?] == 'a', "Fill in the correct value."); - ASSERT(vec[?] == 'b', "Fill in the correct value."); - ASSERT(vec[?] == 'c', "Fill in the correct value."); - ASSERT(vec[?] == 'd', "Fill in the correct value."); + ASSERT(vec.size() == 20, "Fill in the correct value."); + ASSERT(vec.capacity() == 256, "Fill in the correct value."); + ASSERT(vec[15] == 'z', "Fill in the correct value."); + ASSERT(vec[16] == 'a', "Fill in the correct value."); + ASSERT(vec[17] == 'b', "Fill in the correct value."); + ASSERT(vec[18] == 'c', "Fill in the correct value."); + ASSERT(vec[19] == 'd', "Fill in the correct value."); } } diff --git a/exercises/26_std_vector_bool/main b/exercises/26_std_vector_bool/main new file mode 100755 index 0000000000000000000000000000000000000000..98a6ce297504482fec98c56c5e2f149b3576ea2f GIT binary patch literal 41656 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 literal 0 HcmV?d00001 diff --git a/exercises/26_std_vector_bool/main.cpp b/exercises/26_std_vector_bool/main.cpp index b4ab4f9c4..15103c20e 100644 --- a/exercises/26_std_vector_bool/main.cpp +++ b/exercises/26_std_vector_bool/main.cpp @@ -6,29 +6,29 @@ // TODO: 将下列 `?` 替换为正确的代码 int main(int argc, char **argv) { - std::vector vec(?, ?);// TODO: 正确调用构造函数 + std::vector vec(100, true);// TODO: 正确调用构造函数 ASSERT(vec[0], "Make this assertion pass."); ASSERT(vec[99], "Make this assertion pass."); ASSERT(vec.size() == 100, "Make this assertion pass."); // NOTICE: 平台相关!注意 CI:Ubuntu 上的值。 std::cout << "sizeof(std::vector) = " << sizeof(std::vector) << std::endl; - ASSERT(sizeof(vec) == ?, "Fill in the correct value."); + ASSERT(sizeof(vec) == 40, "Fill in the correct value."); { vec[20] = false; - ASSERT(?vec[20], "Fill in `vec[20]` or `!vec[20]`."); + ASSERT(!vec[20], "Fill in `vec[20]` or `!vec[20]`."); } { vec.push_back(false); - ASSERT(vec.size() == ?, "Fill in the correct value."); - ASSERT(?vec[100], "Fill in `vec[100]` or `!vec[100]`."); + ASSERT(vec.size() == 101, "Fill in the correct value."); + ASSERT(!vec[100], "Fill in `vec[100]` or `!vec[100]`."); } { auto ref = vec[30]; - ASSERT(?ref, "Fill in `ref` or `!ref`"); + ASSERT(ref, "Fill in `ref` or `!ref`"); ref = false; - ASSERT(?ref, "Fill in `ref` or `!ref`"); + ASSERT(!ref, "Fill in `ref` or `!ref`"); // THINK: WHAT and WHY? - ASSERT(?vec[30], "Fill in `vec[30]` or `!vec[30]`."); + ASSERT(!vec[30], "Fill in `vec[30]` or `!vec[30]`."); } return 0; } From 5e378e54964c99233f460e011befd6bdfea6b405 Mon Sep 17 00:00:00 2001 From: LuLu <1714936205@qq.com> Date: Wed, 14 Jan 2026 14:17:55 +0000 Subject: [PATCH 5/5] finish 25-33exercise --- exercises/26_std_vector_bool/main | Bin 0 -> 41656 bytes exercises/26_std_vector_bool/main.cpp | 16 ++++++++-------- exercises/27_strides/main | Bin 0 -> 38488 bytes exercises/27_strides/main.cpp | 9 +++++++++ exercises/28_std_string/main | Bin 0 -> 19136 bytes exercises/28_std_string/main.cpp | 6 +++--- exercises/29_std_map/main | Bin 0 -> 63256 bytes exercises/29_std_map/main.cpp | 3 +++ exercises/30_std_unique_ptr/main | Bin 0 -> 61504 bytes exercises/30_std_unique_ptr/main.cpp | 5 +++-- exercises/31_std_shared_ptr/main | Bin 0 -> 46176 bytes exercises/31_std_shared_ptr/main.cpp | 20 +++++++++++--------- exercises/32_std_transform/main | Bin 0 -> 48736 bytes exercises/32_std_transform/main.cpp | 10 +++++++++- exercises/33_std_accumulate/main | Bin 0 -> 17680 bytes exercises/33_std_accumulate/main.cpp | 9 +++++++++ 16 files changed, 55 insertions(+), 23 deletions(-) create mode 100755 exercises/26_std_vector_bool/main create mode 100755 exercises/27_strides/main create mode 100755 exercises/28_std_string/main create mode 100755 exercises/29_std_map/main create mode 100755 exercises/30_std_unique_ptr/main create mode 100755 exercises/31_std_shared_ptr/main create mode 100755 exercises/32_std_transform/main create mode 100755 exercises/33_std_accumulate/main diff --git a/exercises/26_std_vector_bool/main b/exercises/26_std_vector_bool/main new file mode 100755 index 0000000000000000000000000000000000000000..98a6ce297504482fec98c56c5e2f149b3576ea2f GIT binary patch literal 41656 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 literal 0 HcmV?d00001 diff --git a/exercises/26_std_vector_bool/main.cpp b/exercises/26_std_vector_bool/main.cpp index b4ab4f9c4..f2e707c14 100644 --- a/exercises/26_std_vector_bool/main.cpp +++ b/exercises/26_std_vector_bool/main.cpp @@ -6,29 +6,29 @@ // TODO: 将下列 `?` 替换为正确的代码 int main(int argc, char **argv) { - std::vector vec(?, ?);// TODO: 正确调用构造函数 + std::vector vec(100, 1);// TODO: 正确调用构造函数 ASSERT(vec[0], "Make this assertion pass."); ASSERT(vec[99], "Make this assertion pass."); ASSERT(vec.size() == 100, "Make this assertion pass."); // NOTICE: 平台相关!注意 CI:Ubuntu 上的值。 std::cout << "sizeof(std::vector) = " << sizeof(std::vector) << std::endl; - ASSERT(sizeof(vec) == ?, "Fill in the correct value."); + ASSERT(sizeof(vec) == 40, "Fill in the correct value."); { vec[20] = false; - ASSERT(?vec[20], "Fill in `vec[20]` or `!vec[20]`."); + ASSERT(!vec[20], "Fill in `vec[20]` or `!vec[20]`."); } { vec.push_back(false); - ASSERT(vec.size() == ?, "Fill in the correct value."); - ASSERT(?vec[100], "Fill in `vec[100]` or `!vec[100]`."); + ASSERT(vec.size() == 101, "Fill in the correct value."); + ASSERT(!vec[100], "Fill in `vec[100]` or `!vec[100]`."); } { auto ref = vec[30]; - ASSERT(?ref, "Fill in `ref` or `!ref`"); + ASSERT(ref, "Fill in `ref` or `!ref`"); ref = false; - ASSERT(?ref, "Fill in `ref` or `!ref`"); + ASSERT(!ref, "Fill in `ref` or `!ref`"); // THINK: WHAT and WHY? - ASSERT(?vec[30], "Fill in `vec[30]` or `!vec[30]`."); + ASSERT(!vec[30], "Fill in `vec[30]` or `!vec[30]`."); } return 0; } diff --git a/exercises/27_strides/main b/exercises/27_strides/main new file mode 100755 index 0000000000000000000000000000000000000000..20e1f8d6835caa1e137bf47c1318770dbc5b042d GIT binary patch literal 38488 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 strides(std::vector const &shape) { // TODO: 完成函数体,根据张量形状计算张量连续存储时的步长。 // READ: 逆向迭代器 std::vector::rbegin // 使用逆向迭代器可能可以简化代码 + udim current_stride = 1; // 最后一维的步长固定为1 + auto shape_it = shape.rbegin(); // shape的逆向开始(最后一个元素) + auto stride_it = strides.rbegin(); // 结果的逆向开始(最后一个位置) + while (shape_it != shape.rend() && stride_it != strides.rend()) { + *stride_it = current_stride; // 给当前维度赋值步长 + current_stride *= *shape_it; // 计算前一维的步长(当前步长 × 当前维度形状) + ++shape_it; + ++stride_it; + } return strides; } diff --git a/exercises/28_std_string/main b/exercises/28_std_string/main new file mode 100755 index 0000000000000000000000000000000000000000..9988f6604838483f648e170b81d951c470815799 GIT binary patch literal 19136 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 AA^-pY literal 0 HcmV?d00001 diff --git a/exercises/28_std_string/main.cpp b/exercises/28_std_string/main.cpp index d8b276274..d5b1eb909 100644 --- a/exercises/28_std_string/main.cpp +++ b/exercises/28_std_string/main.cpp @@ -10,9 +10,9 @@ int main(int argc, char **argv) { auto world = "world"; // READ: `decltype` 表达式 // READ: `std::is_same_v` 元编程判别 - ASSERT((std::is_same_v), "Fill in the missing type."); - ASSERT((std::is_same_v), "Fill in the missing type."); + ASSERT((std::is_same::value), "Fill in the missing type."); + ASSERT((std::is_same::value), "Fill in the missing type."); // TODO: 将 `?` 替换为正确的字符串 - ASSERT(hello + ", " + world + '!' == "?", "Fill in the missing string."); + ASSERT(hello + ", " + world + '!' == "Hello, world!", "Fill in the missing string."); return 0; } diff --git a/exercises/29_std_map/main b/exercises/29_std_map/main new file mode 100755 index 0000000000000000000000000000000000000000..572bc0459041743937887f98eef08b857e02bc8a GIT binary patch literal 63256 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 CyQ$g$ literal 0 HcmV?d00001 diff --git a/exercises/29_std_map/main.cpp b/exercises/29_std_map/main.cpp index fcccca347..b8c3a26db 100644 --- a/exercises/29_std_map/main.cpp +++ b/exercises/29_std_map/main.cpp @@ -7,11 +7,14 @@ template bool key_exists(std::map const &map, k const &key) { // TODO: 实现函数 + return map.find(key) != map.end(); } template void set(std::map &map, k key, v value) { // TODO: 实现函数 + map[key] = value; + } // ---- 不要修改以下代码 ---- diff --git a/exercises/30_std_unique_ptr/main b/exercises/30_std_unique_ptr/main new file mode 100755 index 0000000000000000000000000000000000000000..ee99f737b1f9d26cfed0ac0ecbdd971dccfe82ef GIT binary patch literal 61504 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�E@m79e@c9g=kcQKzn<~W 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 literal 0 HcmV?d00001 diff --git a/exercises/30_std_unique_ptr/main.cpp b/exercises/30_std_unique_ptr/main.cpp index 9b98b5794..0c480a6ed 100644 --- a/exercises/30_std_unique_ptr/main.cpp +++ b/exercises/30_std_unique_ptr/main.cpp @@ -53,14 +53,15 @@ int main(int argc, char **argv) { {"fd"}, // TODO: 分析 problems[1] 中资源的生命周期,将记录填入 `std::vector` // NOTICE: 此题结果依赖对象析构逻辑,平台相关,提交时以 CI 实际运行平台为准 - {"", "", "", "", "", "", "", ""}, - {"", "", "", "", "", "", "", ""}, + {"d", "ffr"}, // problems[1] + {"d", "d", "r"} // problems[2] }; // ---- 不要修改以下代码 ---- for (auto i = 0; i < 3; ++i) { ASSERT(problems[i].size() == answers[i].size(), "wrong size"); + for (auto j = 0; j < problems[i].size(); ++j) { ASSERT(std::strcmp(problems[i][j].c_str(), answers[i][j]) == 0, "wrong location"); } diff --git a/exercises/31_std_shared_ptr/main b/exercises/31_std_shared_ptr/main new file mode 100755 index 0000000000000000000000000000000000000000..f7a2542ced4dd1697239485496fa54e94fa3676c GIT binary patch literal 46176 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 ptrs[]{shared, shared, shared}; std::weak_ptr observer = shared; - ASSERT(observer.use_count() == ?, ""); + ASSERT(observer.use_count() == 4, ""); ptrs[0].reset(); - ASSERT(observer.use_count() == ?, ""); + ASSERT(observer.use_count() == 3, ""); ptrs[1] = nullptr; - ASSERT(observer.use_count() == ?, ""); + ASSERT(observer.use_count() == 2, ""); ptrs[2] = std::make_shared(*shared); - ASSERT(observer.use_count() == ?, ""); + ASSERT(observer.use_count() == 1, ""); ptrs[0] = shared; ptrs[1] = shared; ptrs[2] = std::move(shared); - ASSERT(observer.use_count() == ?, ""); + ASSERT(observer.use_count() == 3, ""); std::ignore = std::move(ptrs[0]); ptrs[1] = std::move(ptrs[1]); ptrs[1] = std::move(ptrs[2]); - ASSERT(observer.use_count() == ?, ""); + + ASSERT(observer.use_count() == 2, ""); shared = observer.lock(); - ASSERT(observer.use_count() == ?, ""); + + ASSERT(observer.use_count() == 3, ""); shared = nullptr; for (auto &ptr : ptrs) ptr = nullptr; - ASSERT(observer.use_count() == ?, ""); + ASSERT(observer.use_count() == 0, ""); shared = observer.lock(); - ASSERT(observer.use_count() == ?, ""); + ASSERT(observer.use_count() == 0, ""); return 0; } diff --git a/exercises/32_std_transform/main b/exercises/32_std_transform/main new file mode 100755 index 0000000000000000000000000000000000000000..b2abb8b47b161a386e63c80cf0b187f302cb10c4 GIT binary patch literal 48736 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 val{8, 13, 21, 34, 55}; // TODO: 调用 `std::transform`,将 `v` 中的每个元素乘以 2,并转换为字符串,存入 `ans` - // std::vector ans + std::vector ans(val.size()); + std::transform( + val.begin(), // 输入序列起始迭代器 + val.end(), // 输入序列结束迭代器 + ans.begin(), // 输出序列起始迭代器 + [](int n) { // 一元操作函数(lambda表达式) + return std::to_string(n * 2); // 先乘2,再转为字符串 + } + ); ASSERT(ans.size() == val.size(), "ans size should be equal to val size"); ASSERT(ans[0] == "16", "ans[0] should be 16"); ASSERT(ans[1] == "26", "ans[1] should be 26"); diff --git a/exercises/33_std_accumulate/main b/exercises/33_std_accumulate/main new file mode 100755 index 0000000000000000000000000000000000000000..9f152cc8364e412e67a054ef35c9adbbfb6f8f19 GIT binary patch literal 17680 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

() // 累乘操作(替代默认的累加) + ); + + // 步骤2:计算总字节数 = 总元素数 × 单个元素的字节数 + int size = static_cast(element_count * sizeof(DataType)); ASSERT(size == 602112, "4x1x3x224x224 = 602112"); return 0; }