C++建立不確定形引數量函式的方法
一直有思考C++是否可以創捷形引數目不確定的函式,結果看C++primer的時候發現還真有。
initializer_list形參
如果函式的實引數量未知但是全部實參的型別都相同,我們可以使用initializer_list型別的實參。
話不多說先上示例:
int sum(std::initializer_list<int> theList) { int result = 0; for (const auto x:theList) { result += x; } return result; } int main() { std::initializer_list<int> theList{1, 2, 3, 4, 5}; std::cout << sum(theList) << std::endl; return 0; }
但是注意一點!initializer_list並沒有過載"[]"符號,所以它不能使用[index]去訪問元素,但是initializer_list提供了begin(),end(),以及size()方法,可以使用指標訪問,也可以使用範圍for迴圈訪問!
等到我讀到不同型別該如何處理的時候,再來更新這篇部落格!
相關推薦
C++建立不確定形引數量函式的方法
一直有思考C++是否可以創捷形引數目不確定的函式,結果看C++primer的時候發現還真有。 initializer_list形參 如果函式的實引數量未知但是全部實參的型別都相同,我們可以使用initializer_list型別的實參。 話不多說先上示例: int sum(std:
c#建立不確定型別的泛型集合
描述: 假設存在3個類,分別為 Class_01,Class_02,Class_03。 這三個類內屬性或方法 ,全部或部分通用。需要對這三個類中的某個屬性或方法進行操作。 現在根據某種判斷進行宣告三種中的某一種,要求:同一變數名,同樣的操作,只是型別不確定。 程式碼:
使用bind 對函式進行封裝改變函式形參(還能改變函式的形引數量以及順序)
//使用bind 對函式進行封裝改變函式形參(還能改變函式的形引數量以及順序) #include <iostream> #include < functional> using namespace std; void func(int x,int y,int
C#:不確定引數個數傳參 關鍵字 params
using Microsoft.VisualBasic; using System; using System.Diagnostics; using System.Threading; using System.Windows.Forms; namespace WindowsFormsApp13
lua寫入一個不確定是否存在檔案的方法
-- file_path 格式:"./servers/login/a.lua" -- mode 格式:w / a / 其他 -- data :需要儲存的資料 -- check_file_path :是否
c++建立型設計模式--工廠模式--工廠方法(單個產品的構建--對簡單工廠的改善)
主要是修改了簡單工廠不符合開閉原則的限制 基類和子類與簡單工廠一致 工廠方法類 #pragma once #include "CarBaseExtens.hpp" #include <memory> class CarFacotryMethod { public: te
C++ 建立三維陣列的幾種方法
(1)結構體宣告三維陣列 #include "stdafx.h" #include <iostream> #include <vector> using namespace std; int NX=2100; int NY=400; int NZ=5
Objective-C, 為什麼不能在init或是dealloc方法中使用accessor方法
前言 為什麼不要在init和dealloc方法中呼叫getter和setter: Apple在Mac與iOS中關於記憶體管理的開發文件中,有一節的題目為:“Don’tUse Accessor Methods in Initializer Methods and dealloc”,文中說:“The
npoi workbook 的 cellstyle 建立不能超過4000的解決方法
利用NPOI進行Excel的工作表(Sheet)複製時,如果複製的工作表(Sheet)較多(100個左右),會報告 workbook 的 cellstyle 建立不能超過4000 的錯誤. The maximum number of cell styles was exce
【C#】不可變字串String的常用方法
/* 不可變字串類String常用方法 */ /* 1.string.Contains("string") : 是否包含另一字元 */ string str5 = "今天天氣不錯呦";
用Visual C++建立WPF專案的三種主要方法
# 用Visual C++建立WPF專案的三種主要方法 **The problem with using XAML from C++** Because C++ doesn’t support partial class definitions, it isn’t possible to direct
c++ cin 輸入不確定數量的string類
今天在閱讀《c++ primer》的時候,書上有這樣一段程式碼: string word; while(cin >> word) cout << word << endl; 該程式碼段的作用呢,就是當你需要輸入好幾個字串的時候,中間已空格隔開,但你又不確切
軟體素材---C語言函式不確定個數的入參的處理
1 : #用來把引數轉換成字串 #define P(A) printf("%s:%d\n",#A,A);int main(int argc, char **argv) { int a = 1,
C++省略號型別和引數個數不確定函式引數範例
宣告:所有權利保留。 轉載必須說明出處:http://blog.csdn.net/cartzhang/article/details/44203651 今天想寫個巨集定義,發現巨集定義裡也可以寫不定引數,但是我的巨集最終沒有用。 因為我覺得寫完,這個不定引數給我帶來
譚浩強 c程序設計 8.17用遞歸法將一個整數n轉換成字符串。例如,輸入486,應輸出字符串"486"。n的位數不確定,可以是任意位數的整數。
tco xsl bof hcl mku owb kit gym code 8.17用遞歸法將一個整數n轉換成字符串。例如,輸入486,應輸出字符串"486"。n的位數不確定,可以是任意位數的整數。 #include <stdio.h>char str1[20]
C++建立類物件時(無參)後不加括號與加括號的區別
https://blog.csdn.net/Windgs_YF/article/details/80927058 https://blog.csdn.net/u012750259/article/details/44832769 1、在棧中例項化物件 A a;//例項化物件,會呼叫c
160-引數陣列-頂一個引數個數不確定的函式
我們可以使用引數陣列定義一個引數個數不確定的函式。 static int Sum(int[] array)//如果一個函式定義了引數,那麼在呼叫這個函式的時候,一定要傳遞對應型別的引數,否則無法呼叫(編譯器編譯不通過) { int sum = 0;
使用函式指標和map載入不確定配置檔案的實現
#include<iostream> #include<string> #include<map> typedef void (*pFunc)(); //用於指向具體載入配置檔案的函式 using namespace std; enum TYPE
C# 通過反射例項化窗體(窗體不固定或窗體數量多)
private void button_Click(object sender, EventArgs e) { //通過按鈕名稱開啟窗體 string btnName = ((Button)sender).Tag.ToString(); string name = Asse
C++進階:新人易入的那些坑 --5.不讓編譯器生成的函式
/* Compiler silently writes 4 functions if they are not explicitly declared: 1.Copy constructor. 2.Copy Assignment Operator. 3.Destructor