1 数组
1.1定义某种数组
int pad[10][10]={
{0},
{0,1,2,3,4,5,6,7,8,9},
{0,2,3,5,6,8,9},
{3,6,9},
{0,4,5,6,7,8,9},
{0,5,6,8,9},
{6,9},
{0,7,8,9},
{0,8,9},
{9,}
};
1.2 同样是定义某个float二维数组
float **p;
p=new float *[n];
for(int i=0;i<n;i++)
p[i]=new float[m];
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
cin>>p[i][j];
}
1.3 重新将数组全部初始化为0
memset(vis,0,sizeof vis);
1.4
子函数(int a,int result[ ])
{
result[0]=1;
result[1]=2;
}
主函数
int main()
{
int fier[3]={0};
}
2.1 交换两个数字
high = low ^ high;
low = low ^ high;
high = low ^ high;
2.2.
dif中有多少个1
int cnt=0;
while(dif!=0)
{
dif=dif&(dif-1);
}
3.pair的vector对
3.1 pair对,比如记录的是文件和行数string的错误次数int。
vector<pair<string, int>> errors;\\定义
errors.push_back(make_pair(file, 1));\\加入,一个是string还有一个就是int数字
for (int i = 0; i<(errors.size() - 1); i++){\\这个是具体的操作。如果
if (errors[i].first == file){
errors[i].second++;
errors.pop_back(); break;
}
}
如果下面要对这个进行从大到小的排序呢
bool compare(pair<string, int> a, pair<string, int> b)
{
return a.second > b.second;
}
stable_sort(errors.begin(), errors.end(), compare);
对这样一个东西进行输出,要求如果条数大于8条,就输出前8条而且文件名如果超过16,那就输出后16.
int idx = 0;
while (idx<8 && idx<errors.size())
{
string check = errors[idx].first;
int t = check.find(' ');
if (t>16)
errors[idx].first.erase(0, t - 16);\\删除从0开始的,t-16长度的字符
cout << errors[idx].first << ' ' << errors[idx].second << endl;
idx++;
}
3.2 pair也可以进行比大小排序
bool cmp(const pair<string,int>& a,const pair<string,int>& b){ \\定义这个比较小函数
return a.second>b.second;
}
vector<pair<string,int> > array;\\定义这个pairvector
stable_sort(array.begin(),array.end(),cmp);\\输出
vector<string> ans;
for(int i=0;i<array.size();i++){
ans.push_back(array[i].first);
}
3.3 //map内部本身就是按照key的大小顺序进行存储的,以map的顺序进行输出
for(map<int,int>::iterator it=m.begin();it!=m.end();++it){
cout << it->first << " "<< it->second << endl;
}
4. cmp.可以达到捆绑根据后一个排序。小技巧。
struct score_hour
{
int score;
int hour;
};
bool cmp(score_hour a, score_hour b)
{
return a.hour < b.hour;
}
while(n--){
cin >> tmp.score >> tmp.hour;
v.push_back(tmp);
}
sort(v.begin(),v.end(),cmp);
5.输出,保留小数点数2位
printf("%.2f\n",dif/2.0);
6.栈
stack<int>s;
s.push();
s.top();
s.pop();