看板 C_and_CPP 關於我們 聯絡資訊
請問各位 我在某處看到這樣的CODE *lower_bound(v.begin(), v.end(), n) = n; v是vector,為什麼函式是寫在左邊 我第一次看到 先謝謝各位的解答 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.173.143.215
zlw:因為function call運算子,也就是lower_bound的() 運算順序 07/25 22:52
zlw:比 = 運算子高,所以只要先執行該函數後傳回 l-value (左值) 07/25 22:53
zlw:就可以寫在 = 的左邊 07/25 22:53
fgets:不好意思,我想再請問*又是要做什麼呢? 07/25 22:56
fgets:然後我也不太懂這樣寫的用處= = 07/25 22:57
zlw:vector的iterator做完dereference後,相當於 v[0] 存取第0個 07/25 22:58
zlw:元素,當然0只是舉例。 07/25 22:59
fgets:很謝謝你喔! 我需要咀嚼一下。 07/25 23:04
zlw:舉例,整個vector只有兩個值 v[0]=3 跟 v[1]=4; 且 n =4 07/25 23:10
zlw:執行 *lower_bound(v.begin(), v.end(), n) 代表尋找整個v中 07/25 23:11
zlw:數值至少有4的所在。故相當於 v[1]。整個簡化完,就是 v[1]=4; 07/25 23:12
zlw:這是沒意義的動作,因為數值沒有被改變 07/25 23:12
fgets:我明白了,感謝!! 07/25 23:14
Ebergies:v[0]= 5; v[1]= 6; 時 會使 v[0]= 4; 07/25 23:50