要聊現(xiàn)代C++,還得從C++的發(fā)展歷程說起:
? 1998年,C++標準委員會發(fā)布了C++語言的第一個國際標準,也就是我們現(xiàn)在使用的最多的C++98;
? 2003年,標準委員會針對98版本中存在的諸多問題進行了修訂,修訂后發(fā)布了C++03;
? 2005年,C++標準委員會發(fā)布了一份技術(shù)報告,詳細說明了引入C++新特性的計劃。因為當時預(yù)計會在本世紀第一個十年的某個時間發(fā)布,這個新標準被非正式地命名為C++0x。
但是,這個標準最終在2011年才面世,也就是C++11,此次標準為C++98發(fā)布后13年來的第一次重大修正;
? 2014年,標準委員會公布了C++14標準;
? 2017年,標準委員會計劃即將公布的C++17標準。
從C++11開始,我們都稱之為現(xiàn)代C++。在C++通過演變來發(fā)展其定義的過程中,偶爾引發(fā)過與現(xiàn)有代碼的兼容問題。不過根據(jù)Bjarne Stroustrup表示,新的標準將幾乎100%兼容于現(xiàn)有標準。
sql優(yōu)化
1.in 和 not in 也要慎用,因為IN會使系統(tǒng)無法使用索引,而只能直接搜索表中的數(shù)據(jù)。
2.當判斷真假是,如果帶and 或者 or :
(當存在 “where 條件1 and 條件2” 時,數(shù)據(jù)庫先執(zhí)行右邊的語句)
and盡量把假的放到右邊(一個為假就為假) Or盡量把為真的放到右邊(
一個為真就為真)
3.應(yīng)盡量避免在 where 子句中對字段進行表達式操作,這將導致引擎放棄使用索引而進行全表掃描。
4.很多時候用 exists是一個好的選擇
5.充分利用連接條件,在某種情況下,兩個表之間可能不只一個的連接條件,這時在 WHERE 子句中將 連接條件完整的寫上,有可能大大提高查詢速度。
6.使用視圖加速查詢