operator<< 和 write 函数之间的区别?
Difference between operator<< and write function?
我想知道std::basic_ostream<CharT,Traits>::operator<<
和std::basic_ostream<CharT,Traits>::write
有什么区别。性能怎么样?
#include <iostream>
#include <string>
int main()
{
std::string tempMsg;
tempMsg.reserve( 100 );
tempMsg += "This is a string";
std::cout.write( tempMsg.data( ), tempMsg.size( ) ).write( "\n", 1 );
std::cout << tempMsg << '\n';
}
它们都打印相同的字符串。但是它们各自的优点是什么?
该函数允许为一个字符数组指定要输出的字符数。
例如你有声明
const char *s = "Hello World!";
并且只想从字符串文字中输出单词“Hello”那么你可以写
std::cout.write( s, 5 );
如果你会写
std::cout << s;
然后输出整个字符串文字。
因此使用该函数您可以输出字符数组的任何部分,例如
std::cout. write( s + 6, 2 ) << 'w' << s + 11 << '\n';
至于性能则没有差异或差异微不足道。重要的是功能。
我想知道std::basic_ostream<CharT,Traits>::operator<<
和std::basic_ostream<CharT,Traits>::write
有什么区别。性能怎么样?
#include <iostream>
#include <string>
int main()
{
std::string tempMsg;
tempMsg.reserve( 100 );
tempMsg += "This is a string";
std::cout.write( tempMsg.data( ), tempMsg.size( ) ).write( "\n", 1 );
std::cout << tempMsg << '\n';
}
它们都打印相同的字符串。但是它们各自的优点是什么?
该函数允许为一个字符数组指定要输出的字符数。
例如你有声明
const char *s = "Hello World!";
并且只想从字符串文字中输出单词“Hello”那么你可以写
std::cout.write( s, 5 );
如果你会写
std::cout << s;
然后输出整个字符串文字。
因此使用该函数您可以输出字符数组的任何部分,例如
std::cout. write( s + 6, 2 ) << 'w' << s + 11 << '\n';
至于性能则没有差异或差异微不足道。重要的是功能。