同じものだと思っていたのですが、オンラインの審査員にコードを送ったら( でendl(cout)
)「不正解」と判定され、もう一度 で送信してみるcout << endl
と、審査員がコードを受け入れてくれました。これらのコマンドの違いを知っている人はいますか?
4 に答える
3
私が知っているものはありません。
std::endl
ストリームを受け取り、ストリームを返す関数です。
ostream& endl ( ostream& os );
に適用するとstd::cout
、関数がすぐに適用されます。
一方、署名付きの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
したがって、ストリームはより慣用的ですが、技術的には違いはありません。ただし、ジャッジボットは単純すぎて、それを認識していない可能性があります。
于 2012-03-04T15:58:22.217 に答える
2
唯一の違いは、endl(cout)
がグローバル関数と見なされるのに対し、cout << endl
ではendl
がマニピュレータと見なされることです。しかし、それらは同じ効果があります。
于 2012-03-04T15:56:54.420 に答える
1
これら 2 つの形式の動作に違いはありません。どちらも同じendl
関数を参照しており、マニピュレータ ( cout << endl
) またはフリー関数 ( endl(cout)
) として使用できます。
于 2012-03-04T15:58:08.163 に答える