Re: [討論] 有沒有讀工程的覺得學python很難/煩的呢
※ 引述《champdessert (朱安)》之銘言:
: 如題
: 小弟唸工程的,之前學C++拿來處理實驗數據、玩arduino或用matlab都覺得還不錯用,因為就那幾個指令,只要靠邏輯就可以慢慢土法煉鋼拼湊出來要的東西。
: 但最近碰到大家說很好學的python,卻覺得它東西都過度包裝所以不好用,正因為都是人「定義」包裝好的東西,一定要照著他的方法寫,反而用起來覺得煩。如果遇到bug因為都是包裝好的指令所以無法用直觀的邏輯去debug或推論,還要上網查一堆資料,還不一定有解。而且這樣就會變成case by case,在不同的應用就要學一系列不同的函式定義,情境稍有不同可能就無法套用,沒辦法用最基礎的一套解決。
: 為什麼大家都說c++比較難python簡單,而我的感覺卻相反呢?是我之前都用得太淺了嗎?
: --------------------------------
: 更:感謝大家的回覆,看來真的是我學得太基礎的關係才會這麼覺得。要來努力學習了~
你肯定是不會C++ C++是一個高度需要理解編譯器運作的語言 隨便舉個例子
template <typename T, typename... Args>
constexpr auto add(T&& first, Args&&... rest) {
return std::forward<T>(first) + add(std::forward<Args>(rest)...);
}
template <typename T>
constexpr T add(T&& value) {
return std::forward<T>(value);
}
這是template使用可變參數(...)來處理多個不同型態參數
所以需要遞歸終點<>,確保模板遞歸能正常結束
constexpr就是編譯時期決定
std::forward跟std::move是C++11的 move symantec 是compiler優化的概念
到了C++17 多了摺疊表達式(Variadic Template)可以簡化每次需要定義遞迴終點
template <typename... Args>
constexpr auto add(Args&&... args) {
return (std::forward<Args>(args) + ...);
}
現實情況兩種都要會 不能只會Variadic Template的版本
然後因為早期(C++20以前) 會造成噴大量的compiler error又很難找問題
所以這段會再升級先定義concept來讓compile error問題更明確在哪
template<typename T, typename U>
concept Addable = requires(T a, U b) {
{ a + b } -> std::same_as<decltype(a + b)>;
};
template <typename... Args>
requires (Addable<Args, Args> && ...)
constexpr auto add(Args&&... args) {
return (std::forward<Args>(args) + ...);
}
以上只是C++少量編譯器針對的feature
其他還有很多是針對編譯時期優化的工具 std::less<> 編譯時期比大小
有專門給編譯器看的程式碼 [[fallthrough]] 強制要求編譯器跳過的attribute
<=>(三向比較運算符或太空船運算符)這也是針對編譯器後端的的智障語法
--
推這篇
光lvalue rvalue reference和move semantics 就很煩
了,再加上template metaprogramming 讓我想起不好
的回憶了
他把c當成c++
跟我想的差不多,樓下碼農幫我judge一下
只能說雖然很難 但是比python酷
不然這年頭隨便一個人都說自己會python
所以後來才有if constexpr讓事情沒有那麼糟糕 XD
C++白爛之處 還要知道哪些寫法是存活在哪些C++版本...... 甚至還有 (since C++17)(deprecated in C++20) 這種只存活一版的鬼東西=.=
https://i.imgur.com/U2lxAXe.png有圖有真相 std::variant_alternative
寫C++很想大聲說我看懂了 但實際上不懂
嗯對 跟我想的一樣
好難 我第一次看到c++就知道要放棄了
metaprogramming真的走偏了我個人覺得
8
首Po今天校正回歸166人,比起前幾天動輒兩三百人 今天回歸明顯少了很多 可以說校正回歸快要歸零了嗎? 接下來的數字將會同步不失真了嗎? 那麼我們可以正確評估確診數字,疫情即將迎來曙光了嗎29
首Po如題 小弟唸工程的,之前學C++拿來處理實驗數據、玩arduino或用matlab都覺得還不錯用,因為就那幾個指令,只要靠邏輯就可以慢慢土法煉鋼拼湊出來要的東西。 但最近碰到大家說很好學的python,卻覺得它東西都過度包裝所以不好用,正因為都是人「定義」包裝好的東西,一定要照著他的方法寫,反而用起來覺得煩。如果遇到bug因為都是包裝好的指令所以無法用直觀的邏輯去debug或推論,還要上網查一堆資料,還不一定有解。而且這樣就會變成case by case,在不同的應用就要學一系列不同的函式定義,情境稍有不同可能就無法套用,沒辦法用最基礎的一套解決。 為什麼大家都說c++比較難python簡單,而我的感覺卻相反呢?是我之前都用得太淺了嗎? --------------------------------4
Python或C++最好都是上過一下網課 比如Udemy那種 再來一定要上過一下進階的 比如modern C++和panda dataframe 才會比較有感覺
56
Re: [閒聊] 寫程式真的這麼邪門嗎?: 初五開工 這邊用C++給大家玩一個小遊戲 一個hello world等級的小程式 #include<iostream>20
Re: [問卦] 如何一句話證明自己C++很強有一天被同事叫去問 template<size_t... Ns> void apply_for(std::integer_sequence<size_t, Ns...>) { (apply(Ns),...); }10
Re: [請益] 什麼程度才能在履歷上說自己會某個語言?C++的話小弟我提供的一個指標 看完effective modern C++ 這本涵蓋了C++重要的概念 lambda expression, rvalue reference, template type deduction, copy/move constructor, destructor, async/thread, move symantec, smart pointer,7
[Vtub] 星街彗星的TEMPLATE MV裡的這女人是誰?如題 Holo歌姬星街彗星在今晚的演唱會上唱了新單曲"TEMPLATE" 隨後也公開了TEMPLATE的MV MV裡有個短髮戴眼鏡的女人6
Re: Fw: [問卦] C++到底難學在哪裡本來想上班摸魚回的。我C不敢說記得住標準,至少style沒問題,linux kernel也有些提交 meson, cmake都很熟悉。所以編譯不是問題。 C++比如說我要return 一個object,要利用RVO要確認幾件事? 首先object的class要是movable 的,所以你要實現個移動構造。 然後讓經驗很老道的人都要編譯看看asm,要不要寫std.move()6
Re: [問卦] 寫程式會用遞迴 大概是什麼程度?這是保守、安全的寫法 請不要小看它 並且多了解 編譯器的最佳化 也不要小看編譯器最佳化3
[心得] 2020-2-16 每日新聞#每日新聞 # 2020-2-16 每日新聞 # FB: # muso: 自動把專輯音檔排序整理的小程式3
Re: [閒聊] ChatGPT是語言模型不是搜尋引擎這個敘述也太強烈了吧? StackOverflow 上面不是只有 code template,重要的是有很多的討論和推論。 而且如果有新的library出來,很多人也會在StackOverflow上討論 關於這個議題,我來分享我最近遇到的案例 最近在工作上寫code遇到一個問題是,我發現,3
[心得] 2020-2-29 每日新聞#每日新聞 # 2020-2-29 每日新聞 # FB: # C++是不是該有個transform_to函數? 在js叫map的功能- #每日新聞 # 2020-3-27 每日新聞 # FB: # 有人用rust做了一個wasm遊戲引擎 Oxygengine 今天還有做了Asset browser