cpp中cin遇到空格or回车会停下来;
string 类型要是读取带空格的字符串需要用getline(cin, s);
// auto 循环很好用
vector<int> vec;
for(auto it : vec)
{
if(pre != it) cout << it << endl;
pre = it;
}
switch格式
switch (a){
case 1:printf("Monday\n"); break;
case 2:printf("Tuesday\n"); break;
case 3:printf("Wednesday\n"); break;
case 4:printf("Thursday\n"); break;
case 5:printf("Friday\n"); break;
default:printf("error\n");
// break!!!!不要忘记哦
c++11中的stoi函数使用,将n进制转成十进制;
https://www.cnblogs.com/Anber82/p/11351833.html
but!!
{
string str = "0b11"; // 去掉0b就行了,0(八进制) 0x(16进制)都没问题就二进制出了问题
// 后缀b(二进制) o(八进制) h(16进制)都没问题
int a = stoi(str,0,2);
cout << a << endl;
return 0;
}为啥结果是0而不是3
TODO:为啥结果是0而不是3;
合并表操作 数组 VS map
#include <iostream>
#include <sys/types.h>
using namespace std;
// const int N = 11111112;
// // 开数组 :适合key取值范围小的情况;
// int v[N];
// int main() {
// int n;
// cin >> n;
// while(n--)
// {
// int a, b;
// cin >> a >> b;
// v[a] += b;
// }
// for(int i = 0; i < N; i++)
// {
// if(v[i] != 0) cout << i << " " << v[i] << endl;
// }
// return 0;
// }
// map 针对key的范围大但是key个数少的情况
// Map自动排序功能有利于输出结果。
#include <map>
int main ()
{
int n;
cin >> n;
map<int, int> m;
map<int, int> :: iterator it;
for(int i = 0; i < n; i++)
{
int a, b;
cin >> a >> b;
it = m.find(a);
if(it != m.end()) //在容器中寻找值为k的元素,返回该元素的迭代器。否则,返回map.end()。
m[a] = it->second + b;
else
m[a] = b;
}
for(it = m.begin(); it != m.end(); it++)
cout << it->first << " " << it->second << endl;
return 0;
}
STL 中 bitset
#include <iostream>
using namespace std;
// int main() {
// int n;
// cin >> n;
// int res = 0;
// while(n)
// {
// if(n % 2 == 1) res ++;
// n /= 2;
// }
// cout << res;
// return 0;
// }
// 64 位输出请用 printf("%lld")
#include <bitset>
int main ()
{
int n;
cin >> n;
bitset<32> b(n);
cout << b.count();
return 0;
}