c++ PRimer Plus(習題18.1)
//與c類似的初始化列表功能//簡單的函數題目,這本書的最后一張其實可以不用做了//不太好做#include<iostream>#include<initializer_list>			//C++11新標準template<class T>				//or typenameT average_list(std::initializer_list<T>r);		//一個返回改類型平均值的函數int main(){	using namespace std;	auto q = average_list(initializer_list<double>{ 15.4,10.7,9.0 });		cout << q << endl;		//11.7	cout << average_list(initializer_list<int>{ 20,30,19,17,45,38 })<<endl;	//28.16	auto ad = average_list<double>({ 'A',70,63.33 });	//這里書上說是強制初始化列表類型為double,具體的用法應該是initializer_list的特性	cout << ad << endl;	cout << "Cheak it,sir!/n";	return 0;}template<class T>				//or typenameT average_list(std::initializer_list<T>r){	T tot=0;		//出現top為	int i = 0;	for (auto p = r.begin(); p != r.end(); p++,i++)		tot += *p;	return tot / i;}c++ Primer Plus(習題18.2)//一個簡單的類設計,要求使用移動構造函數和移動復制運算符//移動寓意和右值的引用有關,這是一種更高效的數據復制方法,在某些情況下//第一次運行出現停止運行,訪問權限出了問題,大意啊,指針竟然沒用new來分配內存#include<iostream>#include"cpmv.h"int main(){	using namespace std;		//大括號為了看見析構函數	{				Cpmv one("C","++");		Cpmv two = one + one;		//呼叫移動右值引用,還有重載的+號		cout << "object one: /n";		one.Display();		cout << "object two: /n";		two.Display();		Cpmv three, four;		cout << "three=one/n";		three = one;					//呼叫賦值預算符		cout << "now object three is: ";		three.Display();		cout << "four=one+two/n";		//產生右值了,呼叫移動賦值運算符		four = one + two;		four.Display();		cout << "Test complete!/n";			}	return 0;}c++ Primer Plus(習題18.3)//c++新標準,可變參數模板,c語言也有//看了大神做的,簡單粗暴#include<iostream>long double sum_value() { return 0; }	//遞歸的終止條件template<typename T,typename...Args>long double sum_value(T value, Args...args);int main(){	using namespace std;	cout << sum_value(100, 200, 300)<< endl;	cout << sum_value(10.2, 31.5, 21, 4, 21.5, 36.8) << endl;	return 0;}template<typename T, typename...Args>long double sum_value(T value, Args...args){	long double result;		//沒理解遞歸的精髓和參數包的展開,記得這里傻傻的初始化為0	result=sum_value(args...);		//這個也想了一會兒,有點難度,對于我這種小菜鳥來說		//展開包,使用遞歸	result += value;	return result;	//附上高手的簡潔代碼 return (long double)(t)+(long double)sum_value(args...);  }c++ Primer Plus(習題18.4)//你會很詫異,為什么沒有解答了,這一題,因為找不到那個老師要改的題目//說是16.5程序清單,可是那時什么鬼,所以,不解釋了完結了,可能只是一個開始罷了,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
新聞熱點
疑難解答
圖片精選