為什麼 function 可以 deref 好幾次結果仍相等
參考
- c++ 11 說明頁有提到隱式轉換 (忘了昨天在哪裡看到)
本站建議搭配 Hover Zoom+ chrome 擴充套件,可自動放大圖片
( 站內文介紹: https://goo.gl/BnBSGa )
網站搜索不是很好用建議使用google底下括號內是範例,整串打進google搜索內;
[ site:https://charlottehong.blogspot.tw/ 你要搜索的內容 ]
排檔桿拇指處通常有一顆按鈕,功能是防止誤打檔位。大原則能不按就不要按。
主要是為了避免誤操作。舉例來說,從 D 檔推到 N 檔本來不需要按按鈕,如果習慣每次都按著,操錯失誤多推了一格,就會直接進入 R 檔(倒車檔),可能會造成事故。
反過來說如果沒有按,排檔桿會被鎖定機構擋住,停在 N 檔而不會滑進 R 檔,多了一道安全防線,避免誤入R檔。
日常行車最常切換的是 N 檔與 D 檔,這兩個檔位之間的切換完全不需要按按鈕,直接前推或後拉即可。
| 操作 | 說明 |
|---|---|
| P ↔ 任意檔位 | 進出 P 檔一律需要按按鈕 |
| N → R | 從空檔進入倒車檔需要按按鈕 |
| 操作 | 說明 |
|---|---|
| N ↔ D | 空檔與前進檔之間直接推拉即可 |
| R → N | 從倒車檔回到空檔不需要按按鈕 |
自排車在 D 檔或 R 檔時,即使不踩油門,車子也會以很緩慢的速度向前或向後移動(大約是一般人走路的速度),這稱為「怠速蠕行」。因此停紅燈時必須控制車輛不移動,有兩種做法:
綠燈起步時,正確順序是:先拉回 D 檔,再踩油門。避免在 N 檔時先踩油門拉高轉速再推入 D 檔,這樣做會讓變速箱內部的離合器承受額外的衝擊與磨損。偶爾不小心輕踩到一點油門問題不大,但不要刻意拉高轉速。
避免在 N 檔大踩油門讓轉速飆高,然後瞬間推入 D 檔讓車子彈射出去。一般家用車的變速箱不是為這種操作設計的,會快速耗損變速箱。
在平地停車時,打檔順序的影響不大。但只要有斜坡錯誤的操作順序就可能會傷到變速箱。
變速箱的 P 檔(Parking)雖然具有鎖定車輛的功能,但它的鎖定方式是靠變速箱內部一個叫做「駐車棘爪」的小金屬片卡住齒輪。這個機構的設計強度有限,它的用途是防止車輛被意外推動時擋一下,而不是長時間承受車輛在斜坡上因重力產生的拉力。
如果在斜坡上直接打 P 檔而沒有先拉手煞車,車輛的全部重量都會壓在這個小小的駐車棘爪上,長期下來會導致:
手煞車必須比 P 檔先作動。 這樣車輛的重量由手煞車承擔,P 檔的駐車棘爪只是輔助鎖定,不會受力。
還沒退出 P 檔前別讓車子滑動了。 如果先放手煞車同時腳也沒踩住剎車,車輛的重量會瞬間壓上駐車棘爪,就跟直接在斜坡打 P 檔一樣了。
有些排檔桿旁邊有一顆小按鈕,按下後儀表板會亮起「Sport」字樣。
啟用 Sport 模式後,變速箱會改變換檔邏輯:延後升檔、提早降檔,讓引擎維持在較高的轉速區間。這樣做的好處是踩油門時動力反應更快、加速更直接,適合需要瞬間加速的場景。
建議使用官方提供的專屬軟體不要使用通用的安全抹除
磁碟管理(k) 對著你的第二顆硬碟的分割區按右鍵壓縮,壓縮出足夠的空間。覺得超級雷…SATA 要開 AHCI 比較好,要轉 IDE 模式還頗麻煩,之後抹除完畢還要轉回來。
文中的說法是會自動使用FF填滿整顆,但是問題是填滿的時候應該不是塞檔案而是從磁軌0填充FF到最後一軌(我是沒有實際照著做,但是從軟體的語意上看起來是這樣,這邊就假設是),或者是說沒辦法在我的電腦見到磁碟空間已滿,所以這與直接格式化會是一樣的意思。
如果不是的話,那這樣不對,因為根據 [1] 還是整顆都髒的,接著根據[2]到時候填0也沒辦法填整顆。
因為本來是整顆硬碟都不存在0,才要花時間找,現在是有部分是0所以測速變快了。
不過因為付出的代價還蠻大的,而且效率也不是很高,客觀來看不建議這樣做。
不過在這一點我是覺得沒有什麼特別情況或是必要性等等,也沒差拉就算給你安全抹除也只是短暫快一陣子~很快會寫滿整顆了
安全抹除的指令根據主控不同設計不同,指令會不一樣;有通用的安全抹除軟體,慎用~可能會導致硬碟被鎖住不能用。
https://www.ptt.cc/bbs/PC_Shopping/M.1495986776.A.CF8.html
不過他與前一章節提到的直接格式化最大不同在於,他需要再 IDE模式下才能工作,SSD的技術是建立在AHCI上的,不知道是不是因為這樣能夠干擾SSD的最佳化,進而真的從頭遍歷一遍。(這我不確定只是猜測~)
下面是相關知識說明,上面做完即可解決問題可以不用看另外這個現象我在2018的Win10還沒沒發生過,有可能是bug被修好了,也有可能是升級Win10版本導致的,有季度大更新建議重灌比較穩~
我的華碩Z97板子並沒有Ultra Fast,不過他可以手動選擇那些東西不檢測,結果是差不多意思的,手動把全部關了都不檢測;Ultra Fast是主機板廠商幫你設置好,廠商直接特化的會更快一些。
失敗都是有徵兆的,上一次關機會關超久,卡在黑畫面
都弄不好可以試試在開始搜尋復原,然後選擇保留資料。這個就相當於重灌,不過會幫你留著資料,原本設置是什麼就還好什麼完整保留,只重灌系統部分。
之前有一次大改版年度更新之後,我的快速啟動就修好了XD 回推這個方法可以試試看。
不過為了避免意外發生記得還是要先備份資料。
--max 中的 -- 移除即可。/*****************************************************************
Name :
Date : 2018/03/21
By : CharlotteHonG
Final: 2018/03/21
*****************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int rand_int(int min, int max){
static int init=0;
if(init == 0){ srand((unsigned)time(NULL)), rand(), ++init; }
return (int)((rand() / (RAND_MAX+1.0)) * (--max - min + 1.0) + min);
}
int main(int argc, char const *argv[]){
for(unsigned i = 0; i < 10; ++i) {
printf("%d, ", rand_int(0, 10));
} printf("\n");
return 0;
}
/*****************************************************************
Name :
Date : 2018/03/21
By : CharlotteHonG
Final: 2018/03/21
*****************************************************************/
#include <iostream>
#include <random>
#include <ctime>
using namespace std;
template<typename T>
int randNum(int min, int max) {
static std::mt19937 generator(time(NULL));
std::uniform_int_distribution<T> distribution(min, --max);
return distribution(generator);
}
int main(int argc, char const *argv[]){
for(unsigned i = 0; i < 10; ++i) {
cout << randNum<int>(1, 10) << ", ";
} cout << endl;
return 0;
}
我查到的是 default_random_engine 是使用 minstd_rand0引擎,使用的是linear_congruential_engine
算法大致為 xi+1 = (16807xi + 0) mod 2147483647.
那個如果是用time(NULL)
我們假設目前time是137486376xxxx(x我不知道是多少不過沒差)
要生成數字為0 - 168070000經過測試第一筆亂數為
136956956xxxx * 16807 / 16807000 = 136956956
這時time為
第二次跑程式時測是為生成 0-168070000
137490578xxxx * 16807 / 16807000
由於生成的數字太小,time的前幾位數並沒有改變所以導致
第一個數字都會一樣
而事實上,當你生成的亂數max等於100000時
第一次的第一個數 : 77018
//間隔約3秒
第二次的第一個數 : 77021
可以發現只有各位數在改變而雖然microsoft 的定義是typedef mt19937 default_random_engine;但本質上用的引擎仍為mt19937,使用的是梅森算法(別問我是甚麼),所以不會有這問題
細節還是問其他懂的人吧
我以前用亂數時也發生過這問題所以我通常會用time(clock())