如何把数组作为参数传递给函数(注意,只是传递数组名)?

直接上代码吧:

template<class T, size_t nSize>
void printArray(T(&Array)[nSize]) {
	T* pt = Array;
	for (size_t n = 0; n < nSize; ++n) {
		cout << *(pt + n) << "\t";
	}

	cout  << "\n";
} 

int main() {
 
	int ia[] = {27,210,12,47,109,83};

	char ca[] = "C++";
	 
	  
	printArray(ia);
	printArray(ca);
}

输出:

参考源码:std::begin()  std::end()

 #include<xutility>

_EXPORT_STD template <class _Ty, size_t _Size>
_NODISCARD constexpr _Ty* begin(_Ty (&_Array)[_Size]) noexcept {
    return _Array;
}

_EXPORT_STD template <class _Ty, size_t _Size>
_NODISCARD constexpr _Ty* end(_Ty (&_Array)[_Size]) noexcept {
    return _Array + _Size;
}


int main() {
  
	int ia[] = { 27,210,12,47,109,83 };

	int val = 83;

	int* result = find(begin(ia), end(ia), val);


}

 
可以使你设计的容器能用数组初始化,添加一个构造函数,例如:
    /// <summary>
    /// 用数组初始化列表
    /// </summary>
    /// <typeparam name="nSize"></typeparam>
    /// <param name="_Array"></param>
    /// 创建时间: 2024-10-06     最后一修改时间:2024-10-06
    template<size_t nSize>
    inline _DList(T(&_Array)[nSize]) {
        InitData();
        for (const T& t : _Array) { Add(t); }
    }

用法例子:

int main() {
  
	int ia[] = { 27,210,12,47,109,83 };

	_pn(ia);

	_DList<int> dl = ia; 

	_pn(dl);	

}

输出:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值