我以爲他們是一樣的東西,但是當我向網上裁判發送代碼時(與endl(cout)
)它給了我「錯誤的答案」的判決,然後我試圖用cout << endl
發送另一個,並且法官接受了代碼!有人知道這些命令之間的區別嗎?有沒有人知道endl(cout)和cout << endl之間的區別?
4
A
回答
3
沒有我知道的。
std::endl
是採取流和返回流的功能:當你把它應用到std::cout
ostream& endl (ostream& os);
,它只是應用功能的時候了。
在另一方面,std::basic_ostream
有operator<<
與簽名過載:
template <typename C, typename T>
basic_ostream<C,T>& operator<<(basic_ostream<C,T>& (*pf)(basic_ostream<C,T>&));
這也將應用功能的時候了。
因此,從技術上講,沒有什麼區別,即使流std::cout << std::endl
更習慣。這可能是法官機器人雖然是簡單的,並沒有意識到它。
2
唯一的區別是endl(cout)
被認爲是一個全局函數,而在cout << endl
,endl
被認爲是一個操縱器。但它們具有相同的效果。
1
這兩種形式之間的行爲沒有區別。兩者都指相同的endl
功能,可用作機械手(cout << endl
)或作爲免費功能(endl(cout)
)。
1
上面的答案是正確的!另外,根據您使用<< endl;
還是endl(cout)
它可以減少代碼中的行數。
例子:
你可以有這樣的事情:
cout << "Hello World" << endl;
OR
cout << "Hello World";
endl(cout);
然而, cout << "Hello World" << endl(cout);
//不起作用
所以在這個例子中它是2行對1行。
相關問題
- 1. std :: cout << x;和std :: cout << x << std :: endl;?
- 2. Cout和endl錯誤
- 3. cout << cout'和'cout <<&cout'在C++中的區別?
- 4. cout << cout和cout <<&cout在C++中有什麼區別?
- 5. 結果cout <<「Hello」+ 1 << endl; (C++)
- 6. 在cout <<「hello」<< endl中刪除endl後,我的C++程序停止工作
- 7. 符號endl和cout無法解析
- 8. std :: endl和\ n之間的區別
- 9. cout緩衝區和C++中的endl的結構
- 10. 當extern「C」時不能使用cout/endl
- 11. 製作一個std :: funtion如果我有兩個功能</p> <pre><code>void foo() { std::cout << 1 << std::endl; } void bar() { std::cout << 2 << std::endl; } </code></pre> <p>指向兩個函數C++
- 12. 分割輸出重定向像</p> <pre><code>#include <iostream> using namespace std; int main() { cout << "Redirect to file1" << endl; cout << "Redirect to file2" << endl; return 0; } </code></pre> <p>
- 13. \ n和std :: endl之間有什麼區別
- 14. 當我們使用cout時boost :: any和boost :: variant之間的區別<<
- 15. cout和C++之間的區別
- 16. cout << stringstream
- 17. cout << 2 [「abc」] << endl;爲什麼它工作?它的語法是什麼?
- 18. OpenGL崩潰只是通過從程序中刪除std :: cout <<「hi」<< std :: endl
- 19. setbase(8)和std :: cout << std :: oct
- 20. std :: endl與cout和wcout一起工作嗎?
- 21. 什麼是std ::與cout和endl一起使用?
- 22. XCode 4只能顯示cout語句和endl
- 23. visual studios cout << not working
- 24. 的std :: ENDL是未知類型的<<
- 25. endl似乎沒有執行
- 26. std :: cout和std :: wcout有什麼區別?
- 27. ';'在'endl'之前
- 28. operator <<:std :: cout << i <<(i << 1);
- 29. cout << std :: ios :: hex做什麼?
- 30. 在ASP.NET WebForms中,<%:, <%=和<%#之間有什麼區別?
如果你有'使用std :: cout',那麼第一個表單將被編譯,但第二個表單將不會(由於依賴於參數的查找)。我不能想到第二種形式可行的情況,但第一種情況與在線法官的情況不同。 – interjay 2012-03-04 16:05:08