C++ 数组与字符串

静态数组、vector、string 操作

静态数组

const int N = 1e5 + 10;
int a[N];
int b[N][20];  // 二维注意空间
memset(a, 0, sizeof a);      // 按字节填充,常用于 0 / -1
fill(a, a + n, 0);           // C++ 填 0

全局数组在 BSS 段,比局部大数组更安全(避免栈溢出)。

vector

vector<int> v(n);           // 长度 n,初值 0
vector<int> v(n, -1);       // 初值 -1
v.push_back(x);
v.pop_back();
v.size();
v.empty();
v.clear();
v.resize(m);

二维:vector<vector<int>> g(n, vector<int>(m));

string

string s = "abc";
s += "d";
s.size(); s[i];
s.substr(pos, len);
s.find("pat");  // 找不到返回 string::npos

字符串与数字:to_string(x)stoi(s)stoll(s)

字符

'a'"a" 不同;'0' + digit 转字符。