码迷,mamicode.com
首页 > 编程语言 > 详细

8. 数组赋值函数

时间:2020-02-13 14:39:51      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:测试   nbsp   art   ios   修改   高效   效率   模板函数   while   

题目:

编写一个模板函数 fill,给数组a[start : end - 1]赋值 value。测试你的代码。

 

思路:

正常思路即可。当 start > end 时,进行交换,利用一下 new_swap() 函数。

 

代码:

 1 #include <iostream>
 2 using namespace std;
 3 
 4 template <typename T>
 5 void new_swap(T& a, T& b) {
 6     T temp = a;
 7     a = b;
 8     b = temp;
 9 }
10 
11 template <typename T>
12 void fill_array (T* a, int start, int end, const T& value) {
13     if (start > end) {
14         new_swap(start, end);
15     }
16     while (start != end) {
17         a[start++] = value;
18     }
19 }
20 
21 int main() {
22     int array[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
23     int start, end, value;
24     cout << "Enter start, end, value : ";
25     cin >> start >> end >> value;
26 
27     fill_array(array, start, end, value);
28 
29     for (auto x : array) {
30         cout << x << " ";
31     }
32 
33     return 0;
34 }

这里将 value 声明为常量引用,因为不修改该值,并且传引用可以提高效率。

8. 数组赋值函数

标签:测试   nbsp   art   ios   修改   高效   效率   模板函数   while   

原文地址:https://www.cnblogs.com/Hello-Nolan/p/12303283.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!