| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1427 人关注过本帖
标题:问两个C和C++的简单问题,请大神解答一下
只看楼主 加入收藏
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
结帖率:90.24%
收藏
已结贴  问题点数:20 回复次数:4 
问两个C和C++的简单问题,请大神解答一下
1、因为STL中,队列queue和优点队列priority_queue都是适配容器,但为何队列queue不能用vector实现,可以用list实现,而优先
级队列priority_queue却可以用vector实现,却不可以用list实现呢?

2、
    unsigned long val = 0;
    char a = 0x48;
    char b - 0x52;
    val = b << 8 | a;
结果是21064,我想问一下,b<<8为何移位后不是0?是不是char型表达式发生运算时都会自动转换为int呢?两个三char型进行运算呢?
例如char c = a + b;

    谢谢大佬!
搜索更多相关主题的帖子: C++ 简单问题 队列 char 运算 
2018-03-20 18:51
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
收藏
得分:0 
1.不是说不能实现,是容器自身操作受到限制。vector不支持删除第一个元素。当然,你可以自己另外写一个实现。严格来讲,list实现队列性能比较好,另外,list源生支持删除头节点操作。
优先级队列,其实就是个排序,容器默认是vector,因为它支持下标,很容易实现排序,list不支持下标。



收到的鲜花
  • 九转星河2018-03-20 21:50 送鲜花  1朵   附言:的确和实现方法有关~

普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2018-03-20 21:08
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
收藏
得分:0 
2.b<<8后为0。结果为21064,是因为表达式结果隐式转换为unsigned long类型。请参考ASCII码表,以及二进制加相补码反码的计算。

普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2018-03-20 21:31
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
收藏
得分:0 
回复 3楼 lanke711
请问大佬,char型变量的任何运算都会隐式转换为unsigned long型再去做吗?

既然还有不甘心
就还没到放弃的时候~
2018-03-21 23:35
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
收藏
得分:20 
比如char a="b" ;   
cha字符--------对应Ascii编码的二进制数--------转换成十进制数的int 类型值
在默认情况下声明的整型变量都是有符号的类型

普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2018-03-22 10:25
快速回复:问两个C和C++的简单问题,请大神解答一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017194 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved