最近又重新開始學c++了,才逐漸認識到c++的強大,原來自己一直都是乙個小菜鳥。今天在學find這個泛型演算法的時候,又遇到了乙個有趣的問題,故寫下來了。輸出的結果是:先貼上**吧
#include#include#include
#include
#include
#include
using
namespace
std;
template
inline inputitera find(inputitera first, inputitera last,
const t&value)
return
first;
}int main(void);
int *ptr = ::find(&a[0], &a[10], 7
); cout
<< "
test array
"
<< *ptr << '
'<< *(ptr + 1)
list1(&a[0], &a[10
]); list
::iterator ptr1 = ::find(list1.begin(), list1.end(), 7
); cout
<< "
test list
"
<< *ptr1 << 『 『 << *(++ptr1)
}
test array
7 11
test list
11 11
原本以為第二個輸出的和第乙個是一樣的7和11,但是實際結果卻不是這樣的。
這個問題也很簡單,就是cout的機制是從右至左輸出的,所以執行的先後順序就是:先執行++ptr1然後輸出*ptr1,最後在輸出*ptr1。
c 中 和 的優先順序 cout運算從右到左
運算子優先順序 優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。相同優先順序中,按結合順序計算。大多數運算是從左至右計算,只有三個優先順序是從右至左結合的,它們是單目運算子 條件運算子 賦值運算子。基本的優先順序需要記住 指標最優,單目運算優於雙目運算。如正負號。先...
使cout輸出到檔案
方法1 最笨 fstream output 把cout全部替換成output。方法2 利用命名空間自定義乙個cout namespace calendar 函式內 using calendar cout 在當前作用域內的cout實現全部輸出到檔案 方法3 最好 改變cout的輸出物件,使其輸出到檔案...
cout《格式輸出的使用
控制符是在標頭檔案iomanip.h中定義的物件。使用前必須把iomanip.h包含進來 1.i o的書寫格式 i 0流是輸入或輸出的一系列位元組,當程式需要在螢幕上顯示輸出時,可以使用插入操 作符 向cout輸出流中插入字元。例如 cout this is a program.n 當程式需要執行鍵...