-1
A
回答
0
展示瞭如何作業的數組傳遞給函數,用它做什麼簡單的例子:
class Job
{
public:
int id;
};
void SetJobIds(Job jobs[], int numJobs)
{
// do something useful with your array of jobs
for(int i=0; i<numJobs; ++i)
{
jobs[0].id = i;
}
}
int main() {
const int numJobs = 5;
Job jobs[numJobs];
SetJobIds(jobs, numJobs);
return 0;
}
+0
儘管如此,習慣C++(讀標準庫)卻使用了過去末端指針。 –
0
的最佳方式的陣列到陣列傳遞到功能是利用std::vector
。
否則,您將不得不傳遞數組,元素的容量和數量。
std::vector
包含這些屬性並處理動態內存。您仍然可以使用operator[]
來訪問向量中的元素。
此外,更喜歡通過引用傳遞(所以不作副本)。
如果您不更改函數中的矢量,請傳遞常量引用。
0
通常的方法是通過一個指針到所述第一元件和經過所述陣列的端部的指針:
void my_function(Job const * begin, Job const * end);
// const if you don't modify the array values
這工作將與如何C++標準庫使用迭代器,並且更以上即可使用通用std::begin
和std::end
功能,從你的陣列獲得這兩個指針:
Job jobs[4];
my_function(std::begin(jobs), std::end(jobs));
但如何std::end
知道數組的大小?顯然,它不能只接受指向數組元素的指針,因爲使用數組左值來調用它會觸發從數組到指針的轉換(jobs
與&(jobs[0])
相同)。
好了,你也可以在C++數組的引用:
template<typename T, std::size_t Size>
T * my_end(T (& array)[Size]) {
// ^ ^
// reference to array
// parentheses are strictly necessary:
// T & array[Size] is an array of references (to T)
return array + Size;
}
最後說明一點:不要使用在現代C原料陣列(type name[size]
)的++是建議使用std::array<type, size> name
(或std::vector
如果大小未知/大)。
相關問題
- 1. 什麼是傳遞多個鏈接數組作爲方法參數的最佳/最簡潔的方式?
- 2. 什麼是傳遞一個SQL Server事務作爲參數的最佳方式
- 3. 什麼是在java中傳遞數組的最佳方式
- 4. 傳遞Mulitline String作爲函數參數的最佳方法是什麼?
- 5. 什麼是存儲持久對象數組的最佳方式?
- 6. 從函數到函數傳遞參數的最佳方式是什麼?
- 7. 什麼是將特定參數傳遞給方法的最佳方式
- 8. 組織地理參考數據的最佳方式是什麼?
- 9. 將多個查詢參數傳遞給restful api的最佳方式是什麼?
- 10. 將參數傳遞給應用程序的最佳方式是什麼?
- 11. 在vue.js中的組件之間傳遞數據的最佳方式是什麼?
- 12. winapi apc函數參數傳遞 - 什麼是最佳實踐
- 13. 什麼是將數組從jade傳遞到節點js的最佳方式
- 14. 從PHP傳遞數組到MySQL存儲過程的最佳方式是什麼?
- 15. 從javascript函數傳遞guid作爲值而不是參考的最佳方式?
- 16. 比較對象數組,最佳方式
- 17. 將乘法參數作爲一個http查詢參數傳遞的最佳方法是什麼?
- 18. 將一組對象從一個動作傳遞到另一個動作的最佳方式是什麼?
- 19. 編組char函數參數的最佳方法是什麼?
- 20. 在recyclerview中傳遞100個對象的最佳方式是什麼?
- 21. 什麼是故事板視圖之間傳遞對象的最佳方式?
- 22. 將數組轉換爲散列的最佳方式是什麼?
- 23. 傳遞對象作爲參數的Javascript
- 24. 什麼是傳入數據和導出對象的最佳方式?
- 25. 摺疊函數參數的最佳方式是什麼?
- 26. 作爲參數傳遞多個回調函數的最佳方式?
- 27. 將std :: shared_ptr作爲函數參數傳遞的首選方式是什麼?
- 28. 如何確定什麼對象[]作爲參數傳遞包含?
- 29. 正確測試對象數組對象的最佳方法是什麼?
- 30. 將對象的方法作爲回調傳遞的最佳或最常用的方法是什麼?
這應該是任何文字,你是從領導很早就覆蓋。 – user4581301
我們是否應該編輯它來閱讀「我怎樣才能[..]」而不是「[..]的最佳方式」? –