// C 風格數組:必須指定大小,運行時無法獲取長度 int arr[100]; int len = sizeof(arr)/sizeof(arr[0]); // 僅編譯期常量有效 // C++ vector:動態大小,自帶 size() vector<int> v1; // 空 vector<int> v2(arr, arr+10); // 從數組範圍構造 vector<int> v3(10, 0); // 10 個 0
strlen 僅適用字符串,通用數組無長度感知v.size() 即時獲取,v.push_back() 自動擴容數組無需頭文件,Vector 需 #include <vector>
#include <cstdlib> (C++ 風格) 或 <stdlib.h>
srand(seed):設置種子,決定序列起點。同種子產生同序列rand():返回 [0, RAND_MAX] 偽隨機整數srand(time(0)) + rand() 獲得「不同」序列// [0, n-1] int r = rand() % n; // [a, b] int r = a + rand() % (b - a + 1); // [0.0, 1.0) 浮點 double r = (double)rand() / RAND_MAX;
main 開頭rand() 線程不安全,多線程環境建議用 C++11 <random> 庫std::random_device 或專用庫C++11 引入 <random> 提供更優的隨機數設施:
#include <random>
std::mt19937 gen(std::random_device{}());
std::uniform_int_distribution<> dis(1, 100);
int r = dis(gen); // 更高質量、類型安全、分布豐富
標準容器優先用 vector, string, map 等,避免裸數組與手動內存管理。