代码思路详解——初识C++(勿喷)

容器的使用

  • 栈:①考虑栈为空     ②考虑出栈的个数

有关lower_bound函数的使用

lower_bound

结构体

写一个代码思路很重要,就拿这个例题来说,首先,我们可以将起始点加入我们的队列中,距离和供油量为0.需要得到多组数据并为其赋值还要不互相影响,要使用什么知识来解决这个问题呢?我们最先可能会想到数组,但数组是有局限性的,无法将汽油以及和站点很好的联系起来,这个时候,我们可以用结构体数组来存储数据;

这个例题是单个输出单词,并不计入空格,使输入与输出数据互不影响

数组

其次,这点很重要,用数组下标解决问题使问题简单了很多,我们可以用数组下标解决很多问题:

例一可以将数组下标作为加油站的站点

②可以用数组下标来计算每个数字出现的次数

单目运算符

目前就是这个题运用单目运算符,灵活用到了&与^符号的应用,&相同则为0,否则为1,而^运算,有0则为0;

a -= (a & 1) ^ 1;      

1&1=0         3&1=2     2&1=3      即偶数加一,奇数减一

1^1=1          3^1=3      2^1=0       即偶数均为0,奇数不变

数据的不重复输出

将数字不重复输出

 for(i=1;i<m;i++){ 
        for(j=0;j<i;j++){
            if(a[i]==a[j]){
                break;
            }
        }

②set使用练习:输出字符中不重复的字符

#include<set>
int main()
{
char c;
set<char> set_c;//创建set
while(cin.get(c))
set_c.insert(c);//插入,set不支持下标,insert返回pair,first指向元素,second是一个boll值,true表示插入成功,false表示已有元素
set<char>::iterator iterator=set_c.begin();//创建迭代器指向首
while(iterator!=set_c.end())
{
cout<<* iterator;//输出迭代器指向,只读,不可修改值
iterator++;
}
}

猜你喜欢

转载自blog.csdn.net/hou_shiyu/article/details/81223246
今日推荐