真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何使用c中變長參數(shù)

本篇內(nèi)容主要講解“如何使用c中變長參數(shù)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“如何使用c中變長參數(shù)”吧!

成都創(chuàng)新互聯(lián)專注于普蘭店網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供普蘭店營銷型網(wǎng)站建設(shè),普蘭店網(wǎng)站制作、普蘭店網(wǎng)頁設(shè)計、普蘭店網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造普蘭店網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供普蘭店網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

1.使用模板中的變長參數(shù)函數(shù)聲明

#include 
using namespace std;

/*變長參數(shù)函數(shù)模板聲明*/
template 
void print(T... val);

/*邊界條件*/
void print(void)
{
cout<<"here end"<
void print(T1 start, T2... var)
{
cout<<"sizeof ... now is: "< 

其中的聲明其實是沒什么用的,只是告訴使用者可以按照這樣的格式使用,如果不做這個聲明,只保留"邊界條件"和"遞歸的特例化定義",這樣雖然可行,但是未免會造成困惑

執(zhí)行結(jié)果如下:

如何使用c中變長參數(shù)

實際上,這個"變長"付出的代價還是很大的,要遞歸的實例出n個函數(shù),最終再調(diào)用邊界條件的函數(shù)。過程如下

如何使用c中變長參數(shù)

如何使用c中變長參數(shù)

2.使用va_list()函數(shù)實現(xiàn)變長參數(shù)列表

以一個矩陣自動識別維度的程序為例

arrayMat.h

#include
#include
#include
using namespace std;
typedef int dtype;

class mat
{
public:
	mat();
	~mat();
	void set_dim(int dim);
	void mat::set_mat_shape(int i,...);
	int  get_dim();
	int* get_mat_shape();
	void print_shape();
	dtype* make_mat();
private:
	int dim;
	int *shape;
	dtype *enterMat;
};

arrayMat.cpp

#include"arrayMat.h"
mat::mat()
{
}

mat::~mat()
{
}

int mat::get_dim() {
	return this->dim;
}

int * mat::get_mat_shape() {
	return this->shape;
}

void mat::print_shape()
{
	for (int a = 0; a < this->dim; a++) {
		std::cout << shape[a] << " " ;
	}
}



void mat::set_dim(int i) {
	this->dim = i;
}

void mat::set_mat_shape(int i, ...) {
	va_list _var_list;
	va_start(_var_list, i);
	int count = 0;
	int *temp=new int[100];
	while (i != -1) {
		//cout << i <<" ";
		temp[count] = i;
		count++;
		i = va_arg(_var_list, int);
	}
	va_end(_var_list);
	this->set_dim(count);
	this->shape = temp;
	//std::cout << std::endl;
	//this->shape = new int [count];
	//for (int j = 0; j < count; j++)
		//shape[j] = temp[j];
}

//Mat2D A[i][j] = B[i + j * rows]

main.cpp

#include"arrayMat.h"


int main() {
	mat m1,m2;
	m1.set_mat_shape(1,3,128,128,-1);
	int *shape = m1.get_mat_shape();
	int dim = m1.get_dim();
	cout << "dim: " << dim< 

運行結(jié)果:

如何使用c中變長參數(shù)

到此,相信大家對“如何使用c中變長參數(shù)”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


網(wǎng)站標題:如何使用c中變長參數(shù)
網(wǎng)站鏈接:http://weahome.cn/article/gpghii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部