1.小技巧
for (int i = 0; str[i]; i++)
这一行初始化一个变量 i
为 0,它用作访问字符串 str
中字符的索引。循环条件 str[i]
检查索引 i
处的字符是否非空(即不是空字符 \0
)。如果字符非空,循环继续执行;否则,循环终止。
// 在循环内部
循环内部的代码将针对字符串中的每个字符执行,直到遇到空字符为止。
// 示例用法 char str[] = "Hello"; for (int i = 0; str[i]; i++) { // 使用 str[i] 访问每个字符 cout << str[i] << endl; }
在这个示例中,循环将遍历字符串 "Hello" 中的字符,并逐个打印,直到遇到空字符。输出将是:
H e l l o
请注意,这个循环假设字符串 str
是以空字符结尾的,也就是说,在字符串的末尾有一个 \0
字符来表示字符串的结束。否则,该循环的行为将不可预测。
2.优先队列priority_queue的一个用法
如果想用从小到大结构的优先队列,则这样子写:
int main() {
priority_queue<int,
vector<int>,greater<int>>s;
s.push(3);
s.push(1);
s.push(2);
while(!s.empty()){
int a=s.top();
cout<<a<<'\n';
s.pop();
}
}
记住前两行怎么写的就行!!!!
3.map
map<int>v;
key和值当成一对pair
auto it = v.begin();
*it == make_pair(key,对应值);
for(auto [key,val]:v)cout<<key<<val(对应值);
for(auto x:v)cout<<x.first(key)<<x.second(val)(对应值);