b**a 发帖数: 1375 | 1 【 以下文字转载自 Quant 讨论区 】
发信人: boya (喝水-四海一家的解决之道), 信区: Quant
标 题: 求C/C++面试题
发信站: BBS 未名空间站 (Fri Jul 9 22:28:18 2010, 美东)
下周要面一个阿三叔叔. 30年C, 20年C++经验.
我是真的惶恐, 问啥概念估计他都能把我侃晕.
大家手里有啥好的编程题没有? 不用太偏, 能真实测试出水平就可以了.
或者有趣点的测试题.
多谢多谢. |
d****p 发帖数: 685 | 2 Kao, 20 yr experience in cpp and 30 yr experience in c ...
Just ask him a lot of questions about pointer:
raw pointer, all kinds of smart pointer (intrusive, shared, auto, strong ref
, weak ref, .... )
And some related issues like array, reference, new, new[], placement new,
malloc, blahblah.
Perhaps the best queston is what's the diff between c and c++. Actually this
is a question hard to me and I
don't know how to answer it in short words.
【在 b**a 的大作中提到】 : 【 以下文字转载自 Quant 讨论区 】 : 发信人: boya (喝水-四海一家的解决之道), 信区: Quant : 标 题: 求C/C++面试题 : 发信站: BBS 未名空间站 (Fri Jul 9 22:28:18 2010, 美东) : 下周要面一个阿三叔叔. 30年C, 20年C++经验. : 我是真的惶恐, 问啥概念估计他都能把我侃晕. : 大家手里有啥好的编程题没有? 不用太偏, 能真实测试出水平就可以了. : 或者有趣点的测试题. : 多谢多谢.
|
z****e 发帖数: 2024 | 3 C++我给你出一招,这个阿三基本就挂了,
你就问他关于 pointer-to-member function 的一些,
1. 语法,让他写一个指向普通成员函数的,
2. static 成员函数的pointer,还有 virtual ,普通的成员函数pointer,三者如何类型转化,可不可以类型转化,那些可以,那些不可以,为什么。
3. 2中详细一点的,就是把基类的pointer-to-member function赋值给派生类的pointer-to-member function,行不行,反过来行不行,为什么?这个有个专门的术语,叫什么。
4. pointer-to-member function 对于virtual, static, non-virtual and non-static, 都有什么本质上边的不用,pointer-to-member function到底代表了什么,是地址,还是相对地址,还是分情况讨论的。
5.比如一个class A的object a,还有一个class B的object b,然后定义一个pointer-to-member function指向A里边的一 |
y***d 发帖数: 2330 | 4 麻子不叫麻子,叫坑人
何类型转化,可不可以类型转化,那些可以,那些不可以,为什么。
pointer-to-member function,行不行,反过来行不行,为什么?这个有个专门的术语
,叫什么。
static, 都有什么本质上边的不用,pointer-to-member function到底代表了什么,是
地址,还是相对地址,还是分情况讨论的。
pointer-to-member function指向A里边的一个函数,就叫这个指针pAf吧。然后通过b
来绑定调用: (b.*pAf)(args),(我估计这个调用他可能都不一定有把握写对,尤其是
少了前面的括号,就全错了),
也不用,然后还自己吹的阿三是必挂的。哈哈哈,对付阿三。哈哈哈。
问他,让他说说结果。
【在 z****e 的大作中提到】 : C++我给你出一招,这个阿三基本就挂了, : 你就问他关于 pointer-to-member function 的一些, : 1. 语法,让他写一个指向普通成员函数的, : 2. static 成员函数的pointer,还有 virtual ,普通的成员函数pointer,三者如何类型转化,可不可以类型转化,那些可以,那些不可以,为什么。 : 3. 2中详细一点的,就是把基类的pointer-to-member function赋值给派生类的pointer-to-member function,行不行,反过来行不行,为什么?这个有个专门的术语,叫什么。 : 4. pointer-to-member function 对于virtual, static, non-virtual and non-static, 都有什么本质上边的不用,pointer-to-member function到底代表了什么,是地址,还是相对地址,还是分情况讨论的。 : 5.比如一个class A的object a,还有一个class B的object b,然后定义一个pointer-to-member function指向A里边的一
|
z****e 发帖数: 2024 | 5 在这个领域,阿三是我们的主要竞争对手。
b
【在 y***d 的大作中提到】 : 麻子不叫麻子,叫坑人 : : 何类型转化,可不可以类型转化,那些可以,那些不可以,为什么。 : pointer-to-member function,行不行,反过来行不行,为什么?这个有个专门的术语 : ,叫什么。 : static, 都有什么本质上边的不用,pointer-to-member function到底代表了什么,是 : 地址,还是相对地址,还是分情况讨论的。 : pointer-to-member function指向A里边的一个函数,就叫这个指针pAf吧。然后通过b : 来绑定调用: (b.*pAf)(args),(我估计这个调用他可能都不一定有把握写对,尤其是 : 少了前面的括号,就全错了),
|
n******t 发帖数: 4406 | 6 他可能在吹牛。。。
【在 b**a 的大作中提到】 : 【 以下文字转载自 Quant 讨论区 】 : 发信人: boya (喝水-四海一家的解决之道), 信区: Quant : 标 题: 求C/C++面试题 : 发信站: BBS 未名空间站 (Fri Jul 9 22:28:18 2010, 美东) : 下周要面一个阿三叔叔. 30年C, 20年C++经验. : 我是真的惶恐, 问啥概念估计他都能把我侃晕. : 大家手里有啥好的编程题没有? 不用太偏, 能真实测试出水平就可以了. : 或者有趣点的测试题. : 多谢多谢.
|
x****u 发帖数: 44466 | 7 楼主可能在挖坑。。。
【在 n******t 的大作中提到】 : 他可能在吹牛。。。
|
t****t 发帖数: 6806 | 8 阿三最会吹牛了
周五面试一阿三, 看简历是学数学出身, 主要研究是optimization, 但是对channel
coding什么的也有研究. 我一看channel coding不是我专业嘛.
我: channel coding熟不熟?
三: 熟得很!
我: 哪方面熟?
三: 都熟! block code, convolutional code, 最近还研究LDPC!
我: (正好我做了好久LDPC)LDPC啊, 哪方面呢? 解码还是构造?
三: 哦, LDPC刚开始, 不太熟.
我: (这么快就草鸡了?...)那coded modulation呢?
三: 没研究过.
我: (您这都好意思说熟!)好吧, 问个简单的. hamming code知道吧.
三: (抢着说)知道知道! (7, 4)!
我: (疑心大起, 放弃原来的问题, 换个更简单的) 长度和维度是多少?
三: (茫然地) (7, 4)啊?
我: hamming code是一系列code, 7, 4是其中之一. 别的呢?
三: ...???(想...)好久没用, 不太记得了.
我: (...这也能忘?好吧.)提示一下, 下
【在 n******t 的大作中提到】 : 他可能在吹牛。。。
|
X****r 发帖数: 3557 | 9 哈哈,这个问题连我都能答,这个阿三也忒圡了。
【在 t****t 的大作中提到】 : 阿三最会吹牛了 : 周五面试一阿三, 看简历是学数学出身, 主要研究是optimization, 但是对channel : coding什么的也有研究. 我一看channel coding不是我专业嘛. : 我: channel coding熟不熟? : 三: 熟得很! : 我: 哪方面熟? : 三: 都熟! block code, convolutional code, 最近还研究LDPC! : 我: (正好我做了好久LDPC)LDPC啊, 哪方面呢? 解码还是构造? : 三: 哦, LDPC刚开始, 不太熟. : 我: (这么快就草鸡了?...)那coded modulation呢?
|
b**a 发帖数: 1375 | 10 多谢各位. 今天面了, 反正我汇报上去的成绩是20/100.
这叔叔根本没到你们建议的层次就暴露了很多问题.
最后问我们有没有java的position...
我对他的简历里的东西大多数都不敢说明白, 有些只听说过而已
, 只敢问实打实的C/C++问题.
一个概念都不问, 只要求写代码.
丢了2道编程题给他, 和我一起面的阿三同事也摇头.
【在 n******t 的大作中提到】 : 他可能在吹牛。。。
|
|
|
b**a 发帖数: 1375 | 11 兄台, 我要拜你为师...
何类型转化,可不可以类型转化,那些可以,那些不可以,为什么。
pointer-to-member function,行不行,反过来行不行,为什么?这个有个专门的术语
,叫什么。
static, 都有什么本质上边的不用,pointer-to-member function到底代表了什么,是
地址,还是相对地址,还是分情况讨论的。
pointer-to-member function指向A里边的一个函数,就叫这个指针pAf吧。然后通过b
来绑定调用: (b.*pAf)(args),(我估计这个调用他可能都不一定有把握写对,尤其是
少了前面的括号,就全错了),
也不用,然后还自己吹的阿三是必挂的。哈哈哈,对付阿三。哈哈哈。
问他,让他说说结果。
【在 z****e 的大作中提到】 : C++我给你出一招,这个阿三基本就挂了, : 你就问他关于 pointer-to-member function 的一些, : 1. 语法,让他写一个指向普通成员函数的, : 2. static 成员函数的pointer,还有 virtual ,普通的成员函数pointer,三者如何类型转化,可不可以类型转化,那些可以,那些不可以,为什么。 : 3. 2中详细一点的,就是把基类的pointer-to-member function赋值给派生类的pointer-to-member function,行不行,反过来行不行,为什么?这个有个专门的术语,叫什么。 : 4. pointer-to-member function 对于virtual, static, non-virtual and non-static, 都有什么本质上边的不用,pointer-to-member function到底代表了什么,是地址,还是相对地址,还是分情况讨论的。 : 5.比如一个class A的object a,还有一个class B的object b,然后定义一个pointer-to-member function指向A里边的一
|
X****r 发帖数: 3557 | 12 没错,实打实的编程就是很好的面试题。
我最近比较常用的面试题就是不用现有库写一个通用的堆栈类,
应该说是不能更简单的题了,但是还是能暴露很多问题。
【在 b**a 的大作中提到】 : 多谢各位. 今天面了, 反正我汇报上去的成绩是20/100. : 这叔叔根本没到你们建议的层次就暴露了很多问题. : 最后问我们有没有java的position... : 我对他的简历里的东西大多数都不敢说明白, 有些只听说过而已 : , 只敢问实打实的C/C++问题. : 一个概念都不问, 只要求写代码. : 丢了2道编程题给他, 和我一起面的阿三同事也摇头.
|
z****e 发帖数: 2024 | 13 这题我要背下来。
以前,很久很久以前精心的写过一个,
忘光光了。
好像就是一个动态数组,pop,push,top,就成了,但是要注意下标检查和容量翻倍。
【在 X****r 的大作中提到】 : 没错,实打实的编程就是很好的面试题。 : 我最近比较常用的面试题就是不用现有库写一个通用的堆栈类, : 应该说是不能更简单的题了,但是还是能暴露很多问题。
|
z****e 发帖数: 2024 | 14 千万不要,那很多版上的人就成了你的师爷了。
有没有你说的那两套程序题?给我分享一下行不?跪求啊。
b
【在 b**a 的大作中提到】 : 兄台, 我要拜你为师... : : 何类型转化,可不可以类型转化,那些可以,那些不可以,为什么。 : pointer-to-member function,行不行,反过来行不行,为什么?这个有个专门的术语 : ,叫什么。 : static, 都有什么本质上边的不用,pointer-to-member function到底代表了什么,是 : 地址,还是相对地址,还是分情况讨论的。 : pointer-to-member function指向A里边的一个函数,就叫这个指针pAf吧。然后通过b : 来绑定调用: (b.*pAf)(args),(我估计这个调用他可能都不一定有把握写对,尤其是 : 少了前面的括号,就全错了),
|
z****e 发帖数: 2024 | 15 请问是白板code么?
要是涂涂改改怎么办?
给橡皮么?
要多长时间,什么标准算通过?
【在 X****r 的大作中提到】 : 没错,实打实的编程就是很好的面试题。 : 我最近比较常用的面试题就是不用现有库写一个通用的堆栈类, : 应该说是不能更简单的题了,但是还是能暴露很多问题。
|
z****e 发帖数: 2024 | 16 而且这个题目其实挺阴险的,要四个defualt必须的都写出来,不然就错了。
要考虑异常安全么?
【在 X****r 的大作中提到】 : 没错,实打实的编程就是很好的面试题。 : 我最近比较常用的面试题就是不用现有库写一个通用的堆栈类, : 应该说是不能更简单的题了,但是还是能暴露很多问题。
|
X****r 发帖数: 3557 | 17 白板code,显然可以擦啊。
大概十五分钟的样子吧。
并不是简单的通过不通过,而是影响最后的评估。
【在 z****e 的大作中提到】 : 请问是白板code么? : 要是涂涂改改怎么办? : 给橡皮么? : 要多长时间,什么标准算通过?
|
X****r 发帖数: 3557 | 18 如果面试者问“要考虑异常安全么”那我就会回问“你认为呢?为什么?”
【在 z****e 的大作中提到】 : 而且这个题目其实挺阴险的,要四个defualt必须的都写出来,不然就错了。 : 要考虑异常安全么?
|
z****e 发帖数: 2024 | 19 要考虑总容量翻倍么?
【在 X****r 的大作中提到】 : 白板code,显然可以擦啊。 : 大概十五分钟的样子吧。 : 并不是简单的通过不通过,而是影响最后的评估。
|
X****r 发帖数: 3557 | 20 这种情况下我就会问,你为什么选择用数组实现?还有别的实现方法吗?它们各有什么
优劣?
【在 z****e 的大作中提到】 : 这题我要背下来。 : 以前,很久很久以前精心的写过一个, : 忘光光了。 : 好像就是一个动态数组,pop,push,top,就成了,但是要注意下标检查和容量翻倍。
|
|
|
z****e 发帖数: 2024 | 21 我就说 我学STL,照猫画虎。
【在 X****r 的大作中提到】 : 这种情况下我就会问,你为什么选择用数组实现?还有别的实现方法吗?它们各有什么 : 优劣?
|
X****r 发帖数: 3557 | 22 这样的话要是满分十分我就最多给六分了。
【在 z****e 的大作中提到】 : 我就说 我学STL,照猫画虎。
|
z****e 发帖数: 2024 | 23 那我说,你别急给6分,我还没说完:
用数组,因为pop操作和push操作会很快,但是容量翻倍就会重新拷贝一遍。
用list,pop就会比较慢,除非是double list,而且有额外的指针开销。但是无需容量
翻倍,永远有内存,只是碎片多,最好搞个memory pool。
你看行么?
正写一个,写完了,运行良好,就是最后core dump了。郁闷调试中。
【在 X****r 的大作中提到】 : 这样的话要是满分十分我就最多给六分了。
|
X****r 发帖数: 3557 | 24 "用list,pop就会比较慢,除非是double list"
你再想想。
【在 z****e 的大作中提到】 : 那我说,你别急给6分,我还没说完: : 用数组,因为pop操作和push操作会很快,但是容量翻倍就会重新拷贝一遍。 : 用list,pop就会比较慢,除非是double list,而且有额外的指针开销。但是无需容量 : 翻倍,永远有内存,只是碎片多,最好搞个memory pool。 : 你看行么? : 正写一个,写完了,运行良好,就是最后core dump了。郁闷调试中。
|
z****e 发帖数: 2024 | 25 不慢,ft,这个是陷阱。看来作链表题还不够。
不过指针开销必须的。
【在 X****r 的大作中提到】 : "用list,pop就会比较慢,除非是double list" : 你再想想。
|
z****e 发帖数: 2024 | 26 15min要都写对,调试都没事,我觉得,对于我来讲还不是很容易呢。
因为15min,黑板写,比打字慢太多了。 |
z****e 发帖数: 2024 | 27 用链表,code写起来会比较慢。我是这个意思。哈哈哈。
【在 X****r 的大作中提到】 : "用list,pop就会比较慢,除非是double list" : 你再想想。
|
z****e 发帖数: 2024 | 28 写完了,我觉得加上调试那个bug,和加上和红猪侠回帖玩,一共用了30min。 |
z****e 发帖数: 2024 | 29 大侠们给说说吧,这个行不行?
有神马错误,需要改进的,和不足。
没写模板的。就int的。
多谢了。
#include
using namespace std;
class Stack{
public:
Stack(int N=0):s(0),_size(0),_capacity(N){
if(_capacity>0)
s=new int[_capacity];
}
Stack(const Stack& x){
s=new int[x._capacity];
_size=x._size;
_capacity=x._capacity;
for(size_t i=0;i
s[i]=x.s[i];
}
Stack& operator=(const Stack& x){
if(this!=&x){
delete s;
s= new int[x._capacity];
_size=x._size;
_capa |
X****r 发帖数: 3557 | 30 我会希望用模板,如果说不会的话用int也成,就是评价低一点罢了。
【在 z****e 的大作中提到】 : 大侠们给说说吧,这个行不行? : 有神马错误,需要改进的,和不足。 : 没写模板的。就int的。 : 多谢了。 : #include : using namespace std; : class Stack{ : public: : Stack(int N=0):s(0),_size(0),_capacity(N){ : if(_capacity>0)
|
|
|
z****e 发帖数: 2024 | 31 晕倒,我是看见你说要快,要速度,就省事了,其实转换成一个模板的也就两分钟的事
啊。
【在 X****r 的大作中提到】 : 我会希望用模板,如果说不会的话用int也成,就是评价低一点罢了。
|
X****r 发帖数: 3557 | 32 粗看一眼不怎么样啊。
比如这个
cout<<"underflow"<
exit(1);
也太夸张了,哪有这样的。
还有如果你写
Stack s;
析构的时候不会出问题吗?
【在 z****e 的大作中提到】 : 大侠们给说说吧,这个行不行? : 有神马错误,需要改进的,和不足。 : 没写模板的。就int的。 : 多谢了。 : #include : using namespace std; : class Stack{ : public: : Stack(int N=0):s(0),_size(0),_capacity(N){ : if(_capacity>0)
|
z****e 发帖数: 2024 | 33 我挂了。
【在 X****r 的大作中提到】 : 粗看一眼不怎么样啊。 : 比如这个 : cout<<"underflow"<: exit(1); : 也太夸张了,哪有这样的。 : 还有如果你写 : Stack s; : 析构的时候不会出问题吗?
|
z****e 发帖数: 2024 | 34 你教教我比较好的解法吧。
这个underflow是要抛出异常吗?
那个delete前边加个if!=0.
【在 X****r 的大作中提到】 : 粗看一眼不怎么样啊。 : 比如这个 : cout<<"underflow"<: exit(1); : 也太夸张了,哪有这样的。 : 还有如果你写 : Stack s; : 析构的时候不会出问题吗?
|
X****r 发帖数: 3557 | 35 现实面试中不需要真的运行,自然也不用调试,有些小错误也就算了。
【在 z****e 的大作中提到】 : 写完了,我觉得加上调试那个bug,和加上和红猪侠回帖玩,一共用了30min。
|
z****e 发帖数: 2024 | 36 Stack s;
不会有问题吧,delete一个null,没事吧。
【在 X****r 的大作中提到】 : 粗看一眼不怎么样啊。 : 比如这个 : cout<<"underflow"<: exit(1); : 也太夸张了,哪有这样的。 : 还有如果你写 : Stack s; : 析构的时候不会出问题吗?
|
z****e 发帖数: 2024 | 37 那我觉得 加上说话,嘻嘻哈哈,旁敲侧击,抓耳挠腮,提裤腰带等等,一共要20min吧
。最后还错误一堆。
【在 X****r 的大作中提到】 : 现实面试中不需要真的运行,自然也不用调试,有些小错误也就算了。
|
X****r 发帖数: 3557 | 38 哦,这个是我看错了。
好吧,仔细看看其实你这个勉强还过得去,就是代码不简洁,所以第一印象不好,呵呵。
【在 z****e 的大作中提到】 : Stack s; : 不会有问题吧,delete一个null,没事吧。
|
z****e 发帖数: 2024 | 39 简洁,是说要尽量少写是吧。
就是能整合就整合?
比如:
Stack(const Stack& x){
s=new int[x._capacity];
_size=x._size;
_capacity=x._capacity;
for(size_t i=0;i
s[i]=x.s[i];
}
变化成:
Stack(const Stack& x):_size(x._size),_capacity(x._capacity){
s=new T[_capacity];
for(size_t i=0;i<_size;++i)
s[i]=x.s[i];
}
【在 X****r 的大作中提到】 : 哦,这个是我看错了。 : 好吧,仔细看看其实你这个勉强还过得去,就是代码不简洁,所以第一印象不好,呵呵。
|
z****e 发帖数: 2024 | 40 我看面试书是说,要尽量先whatever给出一个能work的solution,即便不好看。
然后优化是后面可以再磨磨面试官的事情。是不是啊? |
|
|
X****r 发帖数: 3557 | 41 这个的确有帮助,不过更重要的是重复的代码就不应该写两遍,
比如你的push里
s[_size]=x;
++_size;
这个在if/else里都有(else里的形式不同实质是一样的)
(而且可以写成s[_size++]=x)
【在 z****e 的大作中提到】 : 简洁,是说要尽量少写是吧。 : 就是能整合就整合? : 比如: : Stack(const Stack& x){ : s=new int[x._capacity]; : _size=x._size; : _capacity=x._capacity; : for(size_t i=0;i: s[i]=x.s[i]; : }
|
X****r 发帖数: 3557 | 42 当然是这样的。
【在 z****e 的大作中提到】 : 我看面试书是说,要尽量先whatever给出一个能work的solution,即便不好看。 : 然后优化是后面可以再磨磨面试官的事情。是不是啊?
|
z****e 发帖数: 2024 | 43 是的是的,这个其实我开始写的是
s[_size++]=x;
但是后来调试的时候,就改了一下。还是有点心虚。
【在 X****r 的大作中提到】 : 这个的确有帮助,不过更重要的是重复的代码就不应该写两遍, : 比如你的push里 : s[_size]=x; : ++_size; : 这个在if/else里都有(else里的形式不同实质是一样的) : (而且可以写成s[_size++]=x)
|
z****e 发帖数: 2024 | 44 红猪侠,等于你给我模拟了一次面试。呵呵。多谢多谢啊。
【在 X****r 的大作中提到】 : 当然是这样的。
|
X****r 发帖数: 3557 | 45 不客气,不过编程这个只是一般程序员面试的一部分,如果是我的话
往往还会问一道算法题,一道系统设计题。
而且我只能讲我自己,面试者各有各的做法,也未必有多大用,还是
打好基础比较重要。
【在 z****e 的大作中提到】 : 红猪侠,等于你给我模拟了一次面试。呵呵。多谢多谢啊。
|
z****e 发帖数: 2024 | 46 系统设计题是怎么回事啊?
是C++ design pattern么?
还有大概什么档次的算法题呢?
【在 X****r 的大作中提到】 : 不客气,不过编程这个只是一般程序员面试的一部分,如果是我的话 : 往往还会问一道算法题,一道系统设计题。 : 而且我只能讲我自己,面试者各有各的做法,也未必有多大用,还是 : 打好基础比较重要。
|
z****e 发帖数: 2024 | |
b**a 发帖数: 1375 | 48 大侠千万别这么折煞我这半路出家的了. :)
题在公司机器上. 明天给您发去.
版上人是祖师爷就祖师爷... 俺们的口号是, 4人行, 必有我祖师爷也, 呵呵.
【在 z****e 的大作中提到】 : 千万不要,那很多版上的人就成了你的师爷了。 : 有没有你说的那两套程序题?给我分享一下行不?跪求啊。 : : b
|
z****e 发帖数: 2024 | 49 套用祖师爷一句祖训:
“你这有才,当程序员可惜了。”
【在 b**a 的大作中提到】 : 大侠千万别这么折煞我这半路出家的了. :) : 题在公司机器上. 明天给您发去. : 版上人是祖师爷就祖师爷... 俺们的口号是, 4人行, 必有我祖师爷也, 呵呵.
|
j****i 发帖数: 305 | 50 I'm wondering if you should use
delete[] s;
And what if we do Stack s; and then s.push(3). Then the stack never gets
doubled and you get a seg fault.
Am I right?
【在 z****e 的大作中提到】 : 大侠们给说说吧,这个行不行? : 有神马错误,需要改进的,和不足。 : 没写模板的。就int的。 : 多谢了。 : #include : using namespace std; : class Stack{ : public: : Stack(int N=0):s(0),_size(0),_capacity(N){ : if(_capacity>0)
|
|
|
t****t 发帖数: 6806 | 51 haha, good catch.
【在 j****i 的大作中提到】 : I'm wondering if you should use : delete[] s; : And what if we do Stack s; and then s.push(3). Then the stack never gets : doubled and you get a seg fault. : Am I right?
|
P********e 发帖数: 2610 | 52 primitive data type尽量不要用member initialization list
this complicate compiler when it's get to call member functions in ctor
【在 z****e 的大作中提到】 : 简洁,是说要尽量少写是吧。 : 就是能整合就整合? : 比如: : Stack(const Stack& x){ : s=new int[x._capacity]; : _size=x._size; : _capacity=x._capacity; : for(size_t i=0;i: s[i]=x.s[i]; : }
|
X****r 发帖数: 3557 | 53 Care to explain? This is the first time I hear this.
http://www.parashift.com/c++-faq-lite/intrinsic-types.html#faq-26.8
【在 P********e 的大作中提到】 : primitive data type尽量不要用member initialization list : this complicate compiler when it's get to call member functions in ctor
|
z****e 发帖数: 2024 | 54 我靠,挂了。
一个人挂两次,算不算是undefined behavior?
多谢多谢。
居然自己悲剧拉。。。。。无颜见师傅们拉。
【在 j****i 的大作中提到】 : I'm wondering if you should use : delete[] s; : And what if we do Stack s; and then s.push(3). Then the stack never gets : doubled and you get a seg fault. : Am I right?
|
P********e 发帖数: 2610 | 55 我说的不完全, 应该这样说,primitive data type放 init list没有区别和放ctor
body
不过compiler declare all members before any user code
所以,如果 A: foo ( i ), j (i)这种情况,最好都放ctor body
否则有问题
【在 X****r 的大作中提到】 : Care to explain? This is the first time I hear this. : http://www.parashift.com/c++-faq-lite/intrinsic-types.html#faq-26.8
|
X****r 发帖数: 3557 | 56 这里foo,i,j都是primitive type? A: foo(i), j(i)具体有什么问题?
【在 P********e 的大作中提到】 : 我说的不完全, 应该这样说,primitive data type放 init list没有区别和放ctor : body : 不过compiler declare all members before any user code : 所以,如果 A: foo ( i ), j (i)这种情况,最好都放ctor body : 否则有问题
|
j****i 发帖数: 305 | 57 thrust 大侠,
如何合理的解决这个问题:
Stack s;
s.push(3);
是把默认容量改成1吗?
【在 t****t 的大作中提到】 : haha, good catch.
|
z****e 发帖数: 2024 | 58 看了你的这个回帖,我觉得已经愧对祖先了。
掩面而去。
【在 j****i 的大作中提到】 : thrust 大侠, : 如何合理的解决这个问题: : Stack s; : s.push(3); : 是把默认容量改成1吗?
|
P********e 发帖数: 2610 | 59 我找了个inside c object model,其实是很吹毛求疵的东西
【在 X****r 的大作中提到】 : 这里foo,i,j都是primitive type? A: foo(i), j(i)具体有什么问题?
|
z****e 发帖数: 2024 | 60 inside c object model 很多implementation dependent的东西,编译器的实现都是不
一样的,看该书有点浪费时间。
我花了3天看完,感觉收获一般,付出时间和收获不太成比例。
但是信心增强。
【在 P********e 的大作中提到】 : 我找了个inside c object model,其实是很吹毛求疵的东西
|
|
|
j****i 发帖数: 305 | 61 不好意思,我的问题可能太弱. 只是觉得如果有人建一个空stack,还得给他分配内存,可
能有些浪费.
【在 z****e 的大作中提到】 : 看了你的这个回帖,我觉得已经愧对祖先了。 : 掩面而去。
|
z****e 发帖数: 2024 | 62 非也,你这问题超级牛鼻。
我这个程序有bug,因为空stack无论如何把capacity乘2,还是空的。
所以,应该是capacity最小默认是1,size可以是0.
可以设计成,size为零时,不分配内存。
就既保全了stack不出错,又可以维持一个0内存。(当然private的东西是总存在的。)
【在 j****i 的大作中提到】 : 不好意思,我的问题可能太弱. 只是觉得如果有人建一个空stack,还得给他分配内存,可 : 能有些浪费.
|
X****r 发帖数: 3557 | 63 能不能说具体什么问题啊?这本书我好像若干年前也看过,这会儿也不记得了。
【在 P********e 的大作中提到】 : 我找了个inside c object model,其实是很吹毛求疵的东西
|
j***i 发帖数: 1278 | 64 3天看完的.理解的了不? 很快久忘光了把
【在 z****e 的大作中提到】 : inside c object model 很多implementation dependent的东西,编译器的实现都是不 : 一样的,看该书有点浪费时间。 : 我花了3天看完,感觉收获一般,付出时间和收获不太成比例。 : 但是信心增强。
|
z****e 发帖数: 2024 | 65 我是3天,每天12小时啊。36个小时还看不完么?
【在 j***i 的大作中提到】 : 3天看完的.理解的了不? 很快久忘光了把
|
t****t 发帖数: 6806 | 66 you don't have to change default capacity to 1, because (a) it's a waste if
you declare a lot of empty containers (b) the default capacity may be
changed anyway, you can't prevent user to send in a 0 capacity.
the answer is obvious, when you double the capacity, check whether it is 0
first!
【在 j****i 的大作中提到】 : thrust 大侠, : 如何合理的解决这个问题: : Stack s; : s.push(3); : 是把默认容量改成1吗?
|
t****t 发帖数: 6806 | 67 麻烦你先学学怎么说中文吧.
"primitve data type放init list和放ctor body没有区别"
"否则有问题", 有什么问题呢?
【在 P********e 的大作中提到】 : 我说的不完全, 应该这样说,primitive data type放 init list没有区别和放ctor : body : 不过compiler declare all members before any user code : 所以,如果 A: foo ( i ), j (i)这种情况,最好都放ctor body : 否则有问题
|
j****i 发帖数: 305 | 68 多谢了. 一时没转过来.
if
【在 t****t 的大作中提到】 : you don't have to change default capacity to 1, because (a) it's a waste if : you declare a lot of empty containers (b) the default capacity may be : changed anyway, you can't prevent user to send in a 0 capacity. : the answer is obvious, when you double the capacity, check whether it is 0 : first!
|
j****i 发帖数: 305 | 69 Thanks!
if
【在 t****t 的大作中提到】 : you don't have to change default capacity to 1, because (a) it's a waste if : you declare a lot of empty containers (b) the default capacity may be : changed anyway, you can't prevent user to send in a 0 capacity. : the answer is obvious, when you double the capacity, check whether it is 0 : first!
|
P********e 发帖数: 2610 | 70 你学美国妓者学的挺快的
普通情况下,他们是没有区别的
不过我后面的特例里面有区别.
【在 t****t 的大作中提到】 : 麻烦你先学学怎么说中文吧. : "primitve data type放init list和放ctor body没有区别" : "否则有问题", 有什么问题呢?
|
|
|
t****t 发帖数: 6806 | 71 区别是什么呢?
【在 P********e 的大作中提到】 : 你学美国妓者学的挺快的 : 普通情况下,他们是没有区别的 : 不过我后面的特例里面有区别.
|
p**s 发帖数: 2707 | 72 阿三摇头 = YES!
【在 b**a 的大作中提到】 : 多谢各位. 今天面了, 反正我汇报上去的成绩是20/100. : 这叔叔根本没到你们建议的层次就暴露了很多问题. : 最后问我们有没有java的position... : 我对他的简历里的东西大多数都不敢说明白, 有些只听说过而已 : , 只敢问实打实的C/C++问题. : 一个概念都不问, 只要求写代码. : 丢了2道编程题给他, 和我一起面的阿三同事也摇头.
|
y****w 发帖数: 3747 | 73 实际经验越多,那些边边角角扣细节搞茴香豆几种写法的题目就越生疏。用不着难为人
家,问什么题目看你们的招聘要求就行了,又不是让你和人家斗法。记得以前有个傻x
上来洋洋自得的说面了一个都做过developer manager的人结果连什么什么算法都卡壳
不熟了,别跟那种人学。
btw,刚回的时候没看你已经面过这个了。。。原来真水货。。。
【在 b**a 的大作中提到】 : 大侠千万别这么折煞我这半路出家的了. :) : 题在公司机器上. 明天给您发去. : 版上人是祖师爷就祖师爷... 俺们的口号是, 4人行, 必有我祖师爷也, 呵呵.
|
d*****d 发帖数: 46 | 74 "new for capacity" may only be a good choice in an interview...
if(_capacity>0)
s=new int[_capacity];
}
【在 z****e 的大作中提到】 : 大侠们给说说吧,这个行不行? : 有神马错误,需要改进的,和不足。 : 没写模板的。就int的。 : 多谢了。 : #include : using namespace std; : class Stack{ : public: : Stack(int N=0):s(0),_size(0),_capacity(N){ : if(_capacity>0)
|
a****d 发帖数: 114 | 75 那他怎么拿到的面试呢?应该跟他学学怎么写简历。。。
【在 t****t 的大作中提到】 : 阿三最会吹牛了 : 周五面试一阿三, 看简历是学数学出身, 主要研究是optimization, 但是对channel : coding什么的也有研究. 我一看channel coding不是我专业嘛. : 我: channel coding熟不熟? : 三: 熟得很! : 我: 哪方面熟? : 三: 都熟! block code, convolutional code, 最近还研究LDPC! : 我: (正好我做了好久LDPC)LDPC啊, 哪方面呢? 解码还是构造? : 三: 哦, LDPC刚开始, 不太熟. : 我: (这么快就草鸡了?...)那coded modulation呢?
|