C++在線工具

語言學(xué)習(xí)類

Learn Cpp

Learn Cpp是一個英文的C++教程網(wǎng)站技即,教你如何從完全沒有編程基礎(chǔ)到使用c++進行編程。目前共有23章以及3個附錄驮吱。如果你喜歡在在線教程并且英語勉強過關(guān),這是一個不錯的學(xué)習(xí)網(wǎng)站萧吠。

地址:https://www.learncpp.com/

Runoob

如果實在是英語不行或者指向看中文的教程左冬,作為入門,Runoob也可以一看纸型。這個網(wǎng)站提供了常見的各種語言的入門教程拇砰,網(wǎng)站本身也可以在線編譯和運行c++程序。

地址:https://www.runoob.com/cplusplus/cpp-tutorial.html

編譯運行工具

C++ shell

C++ shell是一個在線編譯運行網(wǎng)站狰腌。支持從98到23的c++標準除破,三個警告選項(-Wall, -Wextra, -Wpedantic)以及五個優(yōu)化級別選項(-O0, -O1, -O2, -O3, -Oz)。功能相對簡單琼腔,但是測試一些隨手寫的代碼足夠了瑰枫。

地址:https://cpp.sh/

Online GDB

Online GDB是一個多語言的在線編譯運行網(wǎng)站,可以看成是C++ shell的增強版丹莲。就像它的名字說的一樣光坝,特色就是提供了在線的GDB調(diào)試功能。GDB對于使用Linux編程的同學(xué)來說可能更加熟悉甥材,建議不熟悉的同學(xué)都可以學(xué)習(xí)一下使用盯另,絕對是調(diào)試程序的利器。

地址:https://www.onlinegdb.com/

Wandbox

也是一個多語言的在線編譯網(wǎng)站洲赵。特點是可以選擇是否使用boost鸳惯,也可以手動往里面填編譯選項商蕴。

地址:https://wandbox.org/

性能Profiler

Quick Bench

在線的benchmark網(wǎng)站,可以快速比較多段代碼的性能悲敷。它可以讓你選擇編譯器究恤、c++標準俭令、優(yōu)化級別以及使用的stl版本后德。Run Benchmark之后你可以在左邊看到用圖展示的benchmark的結(jié)果,然后在Assembly這個tab里面還可以看到到底是哪部分比較吃性能抄腔。

地址:https://quick-bench.com/

Perf Bench

一個跟QuickBench類似的benchmark網(wǎng)站瓢湃。里面有兩個特點:

  1. 除了圖標還有更加詳細的報表數(shù)據(jù);
  2. 記錄每一次運行的數(shù)據(jù)赫蛇。

個人是更喜歡這個網(wǎng)站的profile功能绵患。

地址:https://perfbench.com/

探索內(nèi)部編譯

Godbolt

Compiler Explorer是2019年在Cpp大會上做過presentation(CppCon 2019: Matt Godbolt “Compiler Explorer: Behind The Scenes”)的在線網(wǎng)站,它主要的特點是把c++實時轉(zhuǎn)換成匯編悟耘。匯編可選種類也比較多落蝙,arm匯編,x86匯編配合各個版本的編譯器暂幼。非常有特色的一點是你把鼠標放在左邊的cpp文件的某一行的時候筏勒,右邊對應(yīng)的匯編也會被高亮,這樣你能夠很容易知道每一行轉(zhuǎn)換出的對應(yīng)的匯編是什么樣的旺嬉。

這絕對是一個你直接去嘗試一下的一個網(wǎng)站管行。

地址:https://godbolt.org/

Cpp Insights

這是一個探索C++的source-to-source的變換的網(wǎng)站。它不想Godbolt給你展示最后的匯編邪媳,而是展示C++源碼中間轉(zhuǎn)換的過程捐顷。比如下面的簡單的模版,它可以展示給你特化后的樣子雨效。

源碼:

#include <cstdio>

template <typename T>
struct Vec
{
    Vec(): Vec(0, 0, 0){}
    Vec(T a, T b, T c): x{a}, y迅涮, z{c}{}
    
    Vec operator+(const Vec &rhs) const
    {
       return Vec{x+rhs.x, y+rhs.y, z + rhs.z};
    }
  
    T x, y, z;
};


int main()
{
    using Vec3i = Vec<int>;
    using Vec3f = Vec<float>;
  
    Vec3i v1, v2;
    auto v = v1+v2;
  
   printf("%d, %d\n", v.x, v.y);
  
  return 0;
}

CppInsight展示的轉(zhuǎn)換之后的代碼:

#include <cstdio>

template<typename T>
struct Vec
{
  inline Vec()
  : Vec<T>{0, 0, 0}
  {
  }
  
  inline Vec(T a, T b, T c)
  : x{a}
  , y
  , z{c}
  {
  }
  
  T x;
  T y;
  T z;
  inline Vec<T> operator+(const Vec<T> & rhs) const
  {
    return Vec<T>{{this->x + rhs.x, this->y + rhs.y, this->z + rhs.z}};
  }
  
};

/* First instantiated from: insights.cpp:21 */
#ifdef INSIGHTS_USE_TEMPLATE
template<>
struct Vec<int>
{
  inline Vec()
  : Vec<int>(0, 0, 0)
  {
  }
  
  inline Vec(int a, int b, int c)
  : x{a}
  , y徽龟
  , z{c}
  {
  }
  
  int x;
  int y;
  int z;
  inline Vec<int> operator+(const Vec<int> & rhs) const
  {
    return Vec<int>{this->x + rhs.x, this->y + rhs.y, this->z + rhs.z};
  }
  
};

#endif



int main()
{
  using Vec3i = Vec<int>;
  using Vec3f = Vec<float>;
  Vec<int> v1 = Vec<int>();
  Vec<int> v2 = Vec<int>();
  Vec<int> v = v1.operator+(v2);
  printf("%d, %d\n", v.x, v.y);
  return 0;
}

歡迎關(guān)注公眾號“探知軒”叮姑。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市顿肺,隨后出現(xiàn)的幾起案子戏溺,更是在濱河造成了極大的恐慌,老刑警劉巖屠尊,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旷祸,死亡現(xiàn)場離奇詭異,居然都是意外死亡讼昆,警方通過查閱死者的電腦和手機托享,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人闰围,你說我怎么就攤上這事赃绊。” “怎么了羡榴?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵碧查,是天一觀的道長。 經(jīng)常有香客問我校仑,道長忠售,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任迄沫,我火速辦了婚禮稻扬,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘羊瘩。我一直安慰自己泰佳,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布尘吗。 她就那樣靜靜地躺著逝她,像睡著了一般。 火紅的嫁衣襯著肌膚如雪摇予。 梳的紋絲不亂的頭發(fā)上汽绢,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機與錄音侧戴,去河邊找鬼宁昭。 笑死,一個胖子當(dāng)著我的面吹牛酗宋,可吹牛的內(nèi)容都是我干的积仗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蜕猫,長吁一口氣:“原來是場噩夢啊……” “哼寂曹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起回右,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤隆圆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后翔烁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體渺氧,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年蹬屹,在試婚紗的時候發(fā)現(xiàn)自己被綠了侣背。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片白华。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖贩耐,靈堂內(nèi)的尸體忽然破棺而出弧腥,到底是詐尸還是另有隱情,我是刑警寧澤潮太,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布管搪,位于F島的核電站,受9級特大地震影響消别,放射性物質(zhì)發(fā)生泄漏抛蚤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一寻狂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧朋沮,春花似錦蛇券、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至筋夏,卻和暖如春蒂胞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背条篷。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工骗随, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赴叹。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓鸿染,卻偏偏與公主長得像,于是被迫代替她去往敵國和親乞巧。 傳聞我的和親對象是個殘疾皇子涨椒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容