关闭

暗黑计划2-数组,位运算,pair

490人阅读 评论(0) 收藏 举报

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.位运算

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();








0
0
查看评论

基于数组的位运算1 数组位的基本运算

typedef unsigned char uchar; typedef unsigned short ushort; typedef unsigned int uint; //vc ++ 6.0 不支持long long//linux gcc  不支持__int64 #ifdef ...
  • gemenhao
  • gemenhao
  • 2011-03-17 12:34
  • 1450

Java小知识点学习--------数组和位运算小知识点

Java小知识点学习--------数组和位运算小知识点
  • z1137730824
  • z1137730824
  • 2014-10-24 08:40
  • 818

C语言—位运算、char、数组

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- ---位运算 1.按位与 &    9 & 5     1001 0101 ---- 0001 a&1 == 1 &...
  • d2678230143
  • d2678230143
  • 2015-04-04 13:56
  • 363

zzulioj 1473: 奇怪的排序(pair数组)

Description 最近,Dr. Kong 新设计一个机器人Bill。这台机器人很聪明,会做许多事情。惟独对自然数的理解与人类不一样,它是从右往左读数。比如,它看到123时,会理解成321。让它比较23与15哪一个大,它说15大。原因是它的大脑会以为是32与51在进行比...
  • zs120197
  • zs120197
  • 2016-11-20 19:55
  • 351

暗黑计划-字符串

1.字符串string 1.1 字符串长度 string s int s_len = strlen(s.c_str()); 1.2 截取字符串的一部分 string word = s.substr(起始, 长度); 2.map映射,统计字符串个数的时候可以使用 mapstring, ...
  • lvhao92
  • lvhao92
  • 2016-08-26 10:23
  • 971

暗黑计划-打牌

将输入字符串变成整数数组 int change(char a[10],int a1[10]) { int i,j; for(i=0,j=0;a[i];i++){ if(a[i] == '1'){ a1[j++]...
  • lvhao92
  • lvhao92
  • 2016-09-02 10:34
  • 177

暗黑计划-框架篇

1.首行输入一个int代表次数t,然后输入t次的string,然后输出相应的答案。 #include #include using namespace std; string  num; int main() { int t;     cin>>t; ...
  • lvhao92
  • lvhao92
  • 2016-08-28 23:13
  • 260

c++map、set和pair使用小技巧

最近遇到一道题(后一篇博客会说),不会用map和set的啊,只得去学一下,顺便带了pair,在这里总结。 如果有想要学详细的,请直接关掉这个页面,这里是说部分常用的东西怎么用。
  • Cold_Chair
  • Cold_Chair
  • 2017-05-24 20:45
  • 465

STL中的Pair方法详解

类模板:template struct pair 参数:T1是第一个值的数据类型,T2是第二个值的数据类型。 功能:pair将一对值组合成一个值,这一对值可以具有不同的数据类型(T1和T2),两个值可以分别用pair的两个公有函数first和second访问。 具体用法: 1.定义(构造)...
  • liangzhaoyang1
  • liangzhaoyang1
  • 2016-05-15 00:15
  • 3875

C++:map容器和pair的结合使用

一、map和pair简介   可以简单的理解为如下:map可以当做一个容器(装载具有一定格式的数据);pair可以理解为元素(放入到容器的的一个个个体),发现pair并没有单独行动的典型用法,正常都是配合map来使用(即把pair这个元素插入到map这个容器里面)   二、示例讲解   typ...
  • xiaofeiaiai
  • xiaofeiaiai
  • 2014-02-09 14:49
  • 1987
    个人资料
    • 访问:37215次
    • 积分:933
    • 等级:
    • 排名:千里之外
    • 原创:54篇
    • 转载:5篇
    • 译文:0篇
    • 评论:50条
    最新评论