Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当函数的一个参数也是iostream时,函数返回iostream是强制性的还是仅仅是一种约定 最近我正在阅读C++加速程序,从练习答案中找到了这个有趣的代码。 这是完整的代码 #include "stdafx.h" #include "4_4.h" #include <vector> using std::vector; #include <iostream> using std::ostream; using std::streamsize; using std::cout; using std::endl; #include <exception> using std::domain_error; #include <iomanip> using std::setw; vector<double> square_double(const unsigned int range) { vector<double> squares; if (range > squares.max_size()) throw domain_error("Range argument exceeds vector limit."); for (unsigned int i = 0; i < range; i++) squares.push_back(i * i); return squares; } double GetNumberOfDigits(const double i) { return i > 0 ? log10(i) + 1 : 1; } ostream& print_squares(ostream& os, const vector<double>& v) { if (os) { streamsize digits_i = (streamsize) GetNumberOfDigits(v.size()); streamsize digits_v = (streamsize) GetNumberOfDigits(v.back()); for (vector<double>::size_type i = 0; i < v.size(); i++) { streamsize s_size = os.width(); os << setw(digits_i) << i << " " << setw(digits_v) << v[i] << endl; os.width(s_size); } } return os; } int ex4_4() { vector<double> v = square_double(500); print_squares(cout, v); return 0; } #包括“stdafx.h” #包括“4_4.h” #包括 使用std::vector; #包括 使用std::ostream; 使用std::streamsize; 使用std::cout; 使用std::endl; #包括 使用std::domain\u错误; #包括 使用std::setw; 向量平方双精度(常数无符号整数范围) { 矢量平方; 如果(范围>正方形。最大大小()) 抛出域_错误(“范围参数超过向量限制”); for(无符号整数i=0;i0?log10(i)+1:1; } ostream和print_正方形(ostream和os、常量向量和v) { 如果(操作系统) { streamsize digits_i=(streamsize)GetNumberOfDigits(v.size()); streamsize digits_v=(streamsize)GetNumberOfDigits(v.back()); 对于(vector::size_type i=0;i_C++ - Fatal编程技术网 正方形。最大大小()) 抛出域_错误(“范围参数超过向量限制”); for(无符号整数i=0;i0?log10(i)+1:1; } ostream和print_正方形(ostream和os、常量向量和v) { 如果(操作系统) { streamsize digits_i=(streamsize)GetNumberOfDigits(v.size()); streamsize digits_v=(streamsize)GetNumberOfDigits(v.back()); 对于(vector::size_type i=0;i,c++,C++" /> 正方形。最大大小()) 抛出域_错误(“范围参数超过向量限制”); for(无符号整数i=0;i0?log10(i)+1:1; } ostream和print_正方形(ostream和os、常量向量和v) { 如果(操作系统) { streamsize digits_i=(streamsize)GetNumberOfDigits(v.size()); streamsize digits_v=(streamsize)GetNumberOfDigits(v.back()); 对于(vector::size_type i=0;i,c++,C++" />

当函数的一个参数也是iostream时,函数返回iostream是强制性的还是仅仅是一种约定 最近我正在阅读C++加速程序,从练习答案中找到了这个有趣的代码。 这是完整的代码 #include "stdafx.h" #include "4_4.h" #include <vector> using std::vector; #include <iostream> using std::ostream; using std::streamsize; using std::cout; using std::endl; #include <exception> using std::domain_error; #include <iomanip> using std::setw; vector<double> square_double(const unsigned int range) { vector<double> squares; if (range > squares.max_size()) throw domain_error("Range argument exceeds vector limit."); for (unsigned int i = 0; i < range; i++) squares.push_back(i * i); return squares; } double GetNumberOfDigits(const double i) { return i > 0 ? log10(i) + 1 : 1; } ostream& print_squares(ostream& os, const vector<double>& v) { if (os) { streamsize digits_i = (streamsize) GetNumberOfDigits(v.size()); streamsize digits_v = (streamsize) GetNumberOfDigits(v.back()); for (vector<double>::size_type i = 0; i < v.size(); i++) { streamsize s_size = os.width(); os << setw(digits_i) << i << " " << setw(digits_v) << v[i] << endl; os.width(s_size); } } return os; } int ex4_4() { vector<double> v = square_double(500); print_squares(cout, v); return 0; } #包括“stdafx.h” #包括“4_4.h” #包括 使用std::vector; #包括 使用std::ostream; 使用std::streamsize; 使用std::cout; 使用std::endl; #包括 使用std::domain\u错误; #包括 使用std::setw; 向量平方双精度(常数无符号整数范围) { 矢量平方; 如果(范围>正方形。最大大小()) 抛出域_错误(“范围参数超过向量限制”); for(无符号整数i=0;i0?log10(i)+1:1; } ostream和print_正方形(ostream和os、常量向量和v) { 如果(操作系统) { streamsize digits_i=(streamsize)GetNumberOfDigits(v.size()); streamsize digits_v=(streamsize)GetNumberOfDigits(v.back()); 对于(vector::size_type i=0;i

当函数的一个参数也是iostream时,函数返回iostream是强制性的还是仅仅是一种约定 最近我正在阅读C++加速程序,从练习答案中找到了这个有趣的代码。 这是完整的代码 #include "stdafx.h" #include "4_4.h" #include <vector> using std::vector; #include <iostream> using std::ostream; using std::streamsize; using std::cout; using std::endl; #include <exception> using std::domain_error; #include <iomanip> using std::setw; vector<double> square_double(const unsigned int range) { vector<double> squares; if (range > squares.max_size()) throw domain_error("Range argument exceeds vector limit."); for (unsigned int i = 0; i < range; i++) squares.push_back(i * i); return squares; } double GetNumberOfDigits(const double i) { return i > 0 ? log10(i) + 1 : 1; } ostream& print_squares(ostream& os, const vector<double>& v) { if (os) { streamsize digits_i = (streamsize) GetNumberOfDigits(v.size()); streamsize digits_v = (streamsize) GetNumberOfDigits(v.back()); for (vector<double>::size_type i = 0; i < v.size(); i++) { streamsize s_size = os.width(); os << setw(digits_i) << i << " " << setw(digits_v) << v[i] << endl; os.width(s_size); } } return os; } int ex4_4() { vector<double> v = square_double(500); print_squares(cout, v); return 0; } #包括“stdafx.h” #包括“4_4.h” #包括 使用std::vector; #包括 使用std::ostream; 使用std::streamsize; 使用std::cout; 使用std::endl; #包括 使用std::domain\u错误; #包括 使用std::setw; 向量平方双精度(常数无符号整数范围) { 矢量平方; 如果(范围>正方形。最大大小()) 抛出域_错误(“范围参数超过向量限制”); for(无符号整数i=0;i0?log10(i)+1:1; } ostream和print_正方形(ostream和os、常量向量和v) { 如果(操作系统) { streamsize digits_i=(streamsize)GetNumberOfDigits(v.size()); streamsize digits_v=(streamsize)GetNumberOfDigits(v.back()); 对于(vector::size_type i=0;i,c++,C++,返回其输入所需的唯一一种函数ostream是一个运算符编辑,请检查,谢谢!更好。在这种情况下,我想作者习惯返回流,而不是一个约定或要求。作者可能甚至没有注意到void可能不那么复杂使用。但这是一个猜测,不是一个好答案。Remy Lebeau给出了一个好答案。在iostream编程中,链接是一种常见的习惯。例如,“print_square(std::cout)”[…]返回其输入所需的ostream是一个运算符

返回其输入所需的唯一一种函数
ostream
是一个
运算符编辑,请检查,谢谢!更好。在这种情况下,我想作者习惯返回流,而不是一个约定或要求。作者可能甚至没有注意到
void
可能不那么复杂使用。但这是一个猜测,不是一个好答案。Remy Lebeau给出了一个好答案。在iostream编程中,链接是一种常见的习惯。例如,“print_square(std::cout)”[…]返回其输入所需的
ostream
是一个
运算符