由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 请教 C++ 题
相关主题
C++(非VC++) 删除链表时如何对指针操作? 在线等回复!谢谢!C++11里list迭代器判空仍然知道具体的list对象吗?
C++ 里push_back 一问Please recommend a book on .NET, C#
Reversing a singly linked list从.NET转Java,求攻略
问个C++中重复删除指针的问题Cormen星号题:O(n)遍历二叉树,只能用O(1) extra space
问一个关于C++指针的问题请教一个程序调用的内存问题 (转载)
C++ Q87: What is wrong with this swap function? (转载)Interview Question
Question about type conversion (转载)作为返回值得实参是用指针还是引用比较好?
C++问题: 指针变量是哪里产生的?对指针很熟的高手能否给菜鸟分步骤讲解一下这个单链翻转是怎么实现的?
相关话题的讨论汇总
话题: node话题: value话题: where话题: head话题: next
进入Programming版参与讨论
1 (共1页)
s*********s
发帖数: 35
1
不是很会C++,这组代码是用来implement priority queue的其中一部分,请问有些什
么bug和design方面的缺陷吗?谢谢
template
class SortedList
{
public:
void Push(T value)
{
Node ** where = &m_head;
while (*where && (*where)->value < value) {
where = &((*where)->next);
}
*where = new Node(value,*where);
}
T Pop()
{
Node* pResult = m_head;
m_head = m_head->next;
T result = pResult->value;
free(pResult);
return result;
}
int Size()
{
Node * p = m_head;
int size = 0;
while (p)
++size;
p = p->next;
return size;
}
private:
class Node
{
Node(T value_, Node* next_)
{
value = value_;
next = next_;
}
T value;
Node* next;
};
Node* m_head;
};
t****t
发帖数: 6806
2
没听说过priority queue用linked list来实现的, bug就不用找了.

【在 s*********s 的大作中提到】
: 不是很会C++,这组代码是用来implement priority queue的其中一部分,请问有些什
: 么bug和design方面的缺陷吗?谢谢
: template
: class SortedList
: {
: public:
: void Push(T value)
: {
: Node ** where = &m_head;
: while (*where && (*where)->value < value) {

b*******s
发帖数: 5216
3
Priority queue标准库有了吧,没必要重新发明轮子
s*********s
发帖数: 35
4
谢谢你的回复,你就把他当作一道题吧,撇开priority queue,这段代码里有没什么特
别的问题?

【在 t****t 的大作中提到】
: 没听说过priority queue用linked list来实现的, bug就不用找了.
s*********s
发帖数: 35
5
谢谢,好像是这样。但如果就代码而言,你觉得有什么问题吗?

【在 b*******s 的大作中提到】
: Priority queue标准库有了吧,没必要重新发明轮子
p***o
发帖数: 1252
6
作业问TA, 不是作业把书扔掉换一本。

【在 s*********s 的大作中提到】
: 谢谢你的回复,你就把他当作一道题吧,撇开priority queue,这段代码里有没什么特
: 别的问题?

s*********s
发帖数: 35
7
都不是,是一家小公司的面试题. 是不是代码里很多错误?

【在 p***o 的大作中提到】
: 作业问TA, 不是作业把书扔掉换一本。
b*******s
发帖数: 5216
8
这代码是写得够差的

【在 s*********s 的大作中提到】
: 都不是,是一家小公司的面试题. 是不是代码里很多错误?
r*****h
发帖数: 505
9
这代码你写的?Node用struct吧
s*********s
发帖数: 35
10
可不可以具体举几个例子,差的比较大的地方? 谢谢

【在 b*******s 的大作中提到】
: 这代码是写得够差的
相关主题
C++ Q87: What is wrong with this swap function? (转载)C++11里list迭代器判空仍然知道具体的list对象吗?
Question about type conversion (转载)Please recommend a book on .NET, C#
C++问题: 指针变量是哪里产生的?从.NET转Java,求攻略
进入Programming版参与讨论
s*********s
发帖数: 35
11
谢谢提示。是一小公司出的题,给这组代码,要点出错误或者疏漏,哪些地方可以改进
,可是我不太用C++,指针看不太明白。请多指点下

【在 r*****h 的大作中提到】
: 这代码你写的?Node用struct吧
t****t
发帖数: 6806
12
最大的错误就是用linked list, 别的都不重要. 改进的办法就是重写.

【在 s*********s 的大作中提到】
: 谢谢提示。是一小公司出的题,给这组代码,要点出错误或者疏漏,哪些地方可以改进
: ,可是我不太用C++,指针看不太明白。请多指点下

f*******n
发帖数: 12623
13
问题就是push太慢了。priority queue里的push、pop、等都应该O(log n)。你的push
是O(n)。

【在 s*********s 的大作中提到】
: 谢谢你的回复,你就把他当作一道题吧,撇开priority queue,这段代码里有没什么特
: 别的问题?

m*******l
发帖数: 12782
14
insert should be O(1) avg

push

【在 f*******n 的大作中提到】
: 问题就是push太慢了。priority queue里的push、pop、等都应该O(log n)。你的push
: 是O(n)。

b*******s
发帖数: 5216
15
从效率来说是的,从适应性主要是signature应该用iterator,这样底下换什么容器都
问题不大
有时底下的实现不一定要和某种容器捆,因为你做这个快,但可能整个大解决方案还要
做别的算法处理,那时你捆在deque上说不定又慢了

【在 t****t 的大作中提到】
: 最大的错误就是用linked list, 别的都不重要. 改进的办法就是重写.
b*******s
发帖数: 5216
16
我脑子在转什么呀

【在 b*******s 的大作中提到】
: 从效率来说是的,从适应性主要是signature应该用iterator,这样底下换什么容器都
: 问题不大
: 有时底下的实现不一定要和某种容器捆,因为你做这个快,但可能整个大解决方案还要
: 做别的算法处理,那时你捆在deque上说不定又慢了

b***i
发帖数: 3043
17
free

【在 s*********s 的大作中提到】
: 不是很会C++,这组代码是用来implement priority queue的其中一部分,请问有些什
: 么bug和design方面的缺陷吗?谢谢
: template
: class SortedList
: {
: public:
: void Push(T value)
: {
: Node ** where = &m_head;
: while (*where && (*where)->value < value) {

d****i
发帖数: 4809
18
抛开thrust说的数据结构完全不对的问题不说,你这段代码里面错误太多,比如Node应
该用struct而不是class, 这样你才可以用current=current->next,class的member
variable默认都是private。还有你的where不应定义为指向指针的指针,而应该直接就
是指针。另外m_head应在constructor initialize list里面初始化m_head(NULL)。还
有就是bihai说的free, 应该用delete。

【在 s*********s 的大作中提到】
: 谢谢你的回复,你就把他当作一道题吧,撇开priority queue,这段代码里有没什么特
: 别的问题?

b***i
发帖数: 3043
19
又发现了几个错误:
while(p){应该加括号
p=p->...
}
然后,m_head应该初始化为NULL。
这个面试题有难度。我写了十几年C++,还是得通过调试来发现错误。不过,我在oDesk
上做理论题,刚过平均水平,被评为C++ beginner。实践题就fail了。

【在 s*********s 的大作中提到】
: 不是很会C++,这组代码是用来implement priority queue的其中一部分,请问有些什
: 么bug和design方面的缺陷吗?谢谢
: template
: class SortedList
: {
: public:
: void Push(T value)
: {
: Node ** where = &m_head;
: while (*where && (*where)->value < value) {

s*w
发帖数: 729
20
没细看, Node** 太恐怖,没看出必要来

【在 s*********s 的大作中提到】
: 不是很会C++,这组代码是用来implement priority queue的其中一部分,请问有些什
: 么bug和design方面的缺陷吗?谢谢
: template
: class SortedList
: {
: public:
: void Push(T value)
: {
: Node ** where = &m_head;
: while (*where && (*where)->value < value) {

相关主题
Cormen星号题:O(n)遍历二叉树,只能用O(1) extra space作为返回值得实参是用指针还是引用比较好?
请教一个程序调用的内存问题 (转载)对指针很熟的高手能否给菜鸟分步骤讲解一下这个单链翻转是怎么实现的?
Interview Question数组分配问题,求教
进入Programming版参与讨论
x****f
发帖数: 78
21
又看到这个双指针,觉得自己很牛逼呢? 双指针乱用来把人忽悠。
Node* m_head;
Node ** where = &m_head;
while (*where && (*where)->value < value) {
where = &((*where)->next);
}
*where = new Node(value,*where);
完全改一下Node class,然后用可以用
Node m_head;
Node where = m_head;
while (where && where.value < value) {
where = where.next;
}
where = new Node(value,where);
唉!看到where->Next就讨厌,还是喜欢where.Next容易打出来,也容易看。C#万岁!
!!!
t****t
发帖数: 6806
22
如果抛开原题头脑发昏用链表来做priority list, 以及private access, 少掉的括号,
new/free一类低级错误, 原题的程序在逻辑上其实是对的. 上面凡是指责Node**的都
是土人, 链表插入时因为要照顾头指针, 用指针的指针是以前很常见的写法. 好不好看
懂是另一回事.
至于楼上这位xibaof, 你连C++都没写过吧. 别人问的是C++, 不要拿出java的写法来忽
悠人.

【在 x****f 的大作中提到】
: 又看到这个双指针,觉得自己很牛逼呢? 双指针乱用来把人忽悠。
: Node* m_head;
: Node ** where = &m_head;
: while (*where && (*where)->value < value) {
: where = &((*where)->next);
: }
: *where = new Node(value,*where);
: 完全改一下Node class,然后用可以用
: Node m_head;
: Node where = m_head;

d****i
发帖数: 4809
23
你这个是错的。

【在 x****f 的大作中提到】
: 又看到这个双指针,觉得自己很牛逼呢? 双指针乱用来把人忽悠。
: Node* m_head;
: Node ** where = &m_head;
: while (*where && (*where)->value < value) {
: where = &((*where)->next);
: }
: *where = new Node(value,*where);
: 完全改一下Node class,然后用可以用
: Node m_head;
: Node where = m_head;

d****i
发帖数: 4809
24
没看出一定要用指向指针的指针啊,用下面的简单结构体不就行了吗?
struct Node {
T value;
Node *next;
};

号,

【在 t****t 的大作中提到】
: 如果抛开原题头脑发昏用链表来做priority list, 以及private access, 少掉的括号,
: new/free一类低级错误, 原题的程序在逻辑上其实是对的. 上面凡是指责Node**的都
: 是土人, 链表插入时因为要照顾头指针, 用指针的指针是以前很常见的写法. 好不好看
: 懂是另一回事.
: 至于楼上这位xibaof, 你连C++都没写过吧. 别人问的是C++, 不要拿出java的写法来忽
: 悠人.

t****t
发帖数: 6806
25
结构体不是问题. 你不用**的话就需要判断是不是插在第一个之前来决定是改头指针还
是改某个node. 或者在头上放个dummy node. 这几个都是常见的写法, 你不是号称C
style C++写得很熟么, 这点小事应该都知道啊.

【在 d****i 的大作中提到】
: 没看出一定要用指向指针的指针啊,用下面的简单结构体不就行了吗?
: struct Node {
: T value;
: Node *next;
: };
:
: 号,

d****i
发帖数: 4809
26
ah, I got it. 我有N>>10年没写链表code了。

【在 t****t 的大作中提到】
: 结构体不是问题. 你不用**的话就需要判断是不是插在第一个之前来决定是改头指针还
: 是改某个node. 或者在头上放个dummy node. 这几个都是常见的写法, 你不是号称C
: style C++写得很熟么, 这点小事应该都知道啊.

t****t
发帖数: 6806
27
C++是不需要写这个. 写C的还是需要的.

【在 d****i 的大作中提到】
: ah, I got it. 我有N>>10年没写链表code了。
d****i
发帖数: 4809
28
嗯,是啊,所以能用C把C++的STL全部写一遍而不出错的人是真神人啊。

【在 t****t 的大作中提到】
: C++是不需要写这个. 写C的还是需要的.
f*******n
发帖数: 12623
29
这是什么意思?用heap或self-balancing binary search tree实现的priority queue
都是O(log n) push和pop。我就是说他的push是O(n)的。

【在 m*******l 的大作中提到】
: insert should be O(1) avg
:
: push

m*******l
发帖数: 12782
30
average

queue

【在 f*******n 的大作中提到】
: 这是什么意思?用heap或self-balancing binary search tree实现的priority queue
: 都是O(log n) push和pop。我就是说他的push是O(n)的。

相关主题
google,facebook用的什么语言?C++ 里push_back 一问
前天On-Site自提Windows开发经验被Interviewer嘲笑了Reversing a singly linked list
C++(非VC++) 删除链表时如何对指针操作? 在线等回复!谢谢!问个C++中重复删除指针的问题
进入Programming版参与讨论
m*******l
发帖数: 12782
31
think the size changes

【在 m*******l 的大作中提到】
: average
:
: queue

b*****e
发帖数: 474
32
毛病太多了, 我来挑几个:
template
class SortedList
{
public:
// 1. no c'tor nor d'tor? make sure m_head is NULL
void Push(T value) // 2. pass by value? also try const
{
Node ** where = &m_head; // 3. maybe a little confusing, but using
Node** does help a little when *where is NULL or m_head
while (*where && (*where)->value < value) { // 4. consider a
comparator rather than the <
where = &((*where)->next);
}
*where = new Node(value,*where);
}
T Pop()
{
Node* pResult = m_head;
m_head = m_head->next; // 5. when m_head == NULL, bang!
T result = pResult->value; // ditto
free(pResult); // 6. free? use delete with new
return result;
}
int Size() // 7. get an O(1) implementation
{
Node * p = m_head;
int size = 0;
while (p) // 8. missing { ... } for the indented region
++size;
p = p->next;
return size;
}
// also need empty(), clear(), etc
private:
class Node // 9. why private
{
Node(T value_, Node* next_) // 10. pass by value again
{
value = value_; // 11. copy or initialization list
next = next_;
}
T value;
Node* next;
};
Node* m_head;
};

oDesk

【在 b***i 的大作中提到】
: 又发现了几个错误:
: while(p){应该加括号
: p=p->...
: }
: 然后,m_head应该初始化为NULL。
: 这个面试题有难度。我写了十几年C++,还是得通过调试来发现错误。不过,我在oDesk
: 上做理论题,刚过平均水平,被评为C++ beginner。实践题就fail了。

s*********s
发帖数: 35
33
谢谢你的详细纠错。也谢谢大家热心讨论。都非常有帮助。

using

【在 b*****e 的大作中提到】
: 毛病太多了, 我来挑几个:
: template
: class SortedList
: {
: public:
: // 1. no c'tor nor d'tor? make sure m_head is NULL
: void Push(T value) // 2. pass by value? also try const
: {
: Node ** where = &m_head; // 3. maybe a little confusing, but using
: Node** does help a little when *where is NULL or m_head

E*******1
发帖数: 3464
34
priority queue怎么也得用heap实现,用linked list还不如直接上array
l*********s
发帖数: 5409
35
c也有glib呢.

【在 t****t 的大作中提到】
: C++是不需要写这个. 写C的还是需要的.
s*********s
发帖数: 35
36
不是很会C++,这组代码是用来implement priority queue的其中一部分,请问有些什
么bug和design方面的缺陷吗?谢谢
template
class SortedList
{
public:
void Push(T value)
{
Node ** where = &m_head;
while (*where && (*where)->value < value) {
where = &((*where)->next);
}
*where = new Node(value,*where);
}
T Pop()
{
Node* pResult = m_head;
m_head = m_head->next;
T result = pResult->value;
free(pResult);
return result;
}
int Size()
{
Node * p = m_head;
int size = 0;
while (p)
++size;
p = p->next;
return size;
}
private:
class Node
{
Node(T value_, Node* next_)
{
value = value_;
next = next_;
}
T value;
Node* next;
};
Node* m_head;
};
t****t
发帖数: 6806
37
没听说过priority queue用linked list来实现的, bug就不用找了.

【在 s*********s 的大作中提到】
: 不是很会C++,这组代码是用来implement priority queue的其中一部分,请问有些什
: 么bug和design方面的缺陷吗?谢谢
: template
: class SortedList
: {
: public:
: void Push(T value)
: {
: Node ** where = &m_head;
: while (*where && (*where)->value < value) {

b*******s
发帖数: 5216
38
Priority queue标准库有了吧,没必要重新发明轮子
s*********s
发帖数: 35
39
谢谢你的回复,你就把他当作一道题吧,撇开priority queue,这段代码里有没什么特
别的问题?

【在 t****t 的大作中提到】
: 没听说过priority queue用linked list来实现的, bug就不用找了.
s*********s
发帖数: 35
40
谢谢,好像是这样。但如果就代码而言,你觉得有什么问题吗?

【在 b*******s 的大作中提到】
: Priority queue标准库有了吧,没必要重新发明轮子
相关主题
问个C++中重复删除指针的问题Question about type conversion (转载)
问一个关于C++指针的问题C++问题: 指针变量是哪里产生的?
C++ Q87: What is wrong with this swap function? (转载)C++11里list迭代器判空仍然知道具体的list对象吗?
进入Programming版参与讨论
p***o
发帖数: 1252
41
作业问TA, 不是作业把书扔掉换一本。

【在 s*********s 的大作中提到】
: 谢谢你的回复,你就把他当作一道题吧,撇开priority queue,这段代码里有没什么特
: 别的问题?

s*********s
发帖数: 35
42
都不是,是一家小公司的面试题. 是不是代码里很多错误?

【在 p***o 的大作中提到】
: 作业问TA, 不是作业把书扔掉换一本。
b*******s
发帖数: 5216
43
这代码是写得够差的

【在 s*********s 的大作中提到】
: 都不是,是一家小公司的面试题. 是不是代码里很多错误?
r*****h
发帖数: 505
44
这代码你写的?Node用struct吧
s*********s
发帖数: 35
45
可不可以具体举几个例子,差的比较大的地方? 谢谢

【在 b*******s 的大作中提到】
: 这代码是写得够差的
s*********s
发帖数: 35
46
谢谢提示。是一小公司出的题,给这组代码,要点出错误或者疏漏,哪些地方可以改进
,可是我不太用C++,指针看不太明白。请多指点下

【在 r*****h 的大作中提到】
: 这代码你写的?Node用struct吧
t****t
发帖数: 6806
47
最大的错误就是用linked list, 别的都不重要. 改进的办法就是重写.

【在 s*********s 的大作中提到】
: 谢谢提示。是一小公司出的题,给这组代码,要点出错误或者疏漏,哪些地方可以改进
: ,可是我不太用C++,指针看不太明白。请多指点下

f*******n
发帖数: 12623
48
问题就是push太慢了。priority queue里的push、pop、等都应该O(log n)。你的push
是O(n)。

【在 s*********s 的大作中提到】
: 谢谢你的回复,你就把他当作一道题吧,撇开priority queue,这段代码里有没什么特
: 别的问题?

m*******l
发帖数: 12782
49
insert should be O(1) avg

push

【在 f*******n 的大作中提到】
: 问题就是push太慢了。priority queue里的push、pop、等都应该O(log n)。你的push
: 是O(n)。

b*******s
发帖数: 5216
50
从效率来说是的,从适应性主要是signature应该用iterator,这样底下换什么容器都
问题不大
有时底下的实现不一定要和某种容器捆,因为你做这个快,但可能整个大解决方案还要
做别的算法处理,那时你捆在deque上说不定又慢了

【在 t****t 的大作中提到】
: 最大的错误就是用linked list, 别的都不重要. 改进的办法就是重写.
相关主题
Please recommend a book on .NET, C#请教一个程序调用的内存问题 (转载)
从.NET转Java,求攻略Interview Question
Cormen星号题:O(n)遍历二叉树,只能用O(1) extra space作为返回值得实参是用指针还是引用比较好?
进入Programming版参与讨论
b*******s
发帖数: 5216
51
我脑子在转什么呀

【在 b*******s 的大作中提到】
: 从效率来说是的,从适应性主要是signature应该用iterator,这样底下换什么容器都
: 问题不大
: 有时底下的实现不一定要和某种容器捆,因为你做这个快,但可能整个大解决方案还要
: 做别的算法处理,那时你捆在deque上说不定又慢了

b***i
发帖数: 3043
52
free

【在 s*********s 的大作中提到】
: 不是很会C++,这组代码是用来implement priority queue的其中一部分,请问有些什
: 么bug和design方面的缺陷吗?谢谢
: template
: class SortedList
: {
: public:
: void Push(T value)
: {
: Node ** where = &m_head;
: while (*where && (*where)->value < value) {

d****i
发帖数: 4809
53
抛开thrust说的数据结构完全不对的问题不说,你这段代码里面错误太多,比如Node应
该用struct而不是class, 这样你才可以用current=current->next,class的member
variable默认都是private。还有你的where不应定义为指向指针的指针,而应该直接就
是指针。另外m_head应在constructor initialize list里面初始化m_head(NULL)。还
有就是bihai说的free, 应该用delete。

【在 s*********s 的大作中提到】
: 谢谢你的回复,你就把他当作一道题吧,撇开priority queue,这段代码里有没什么特
: 别的问题?

b***i
发帖数: 3043
54
又发现了几个错误:
while(p){应该加括号
p=p->...
}
然后,m_head应该初始化为NULL。
这个面试题有难度。我写了十几年C++,还是得通过调试来发现错误。不过,我在oDesk
上做理论题,刚过平均水平,被评为C++ beginner。实践题就fail了。

【在 s*********s 的大作中提到】
: 不是很会C++,这组代码是用来implement priority queue的其中一部分,请问有些什
: 么bug和design方面的缺陷吗?谢谢
: template
: class SortedList
: {
: public:
: void Push(T value)
: {
: Node ** where = &m_head;
: while (*where && (*where)->value < value) {

s*w
发帖数: 729
55
没细看, Node** 太恐怖,没看出必要来

【在 s*********s 的大作中提到】
: 不是很会C++,这组代码是用来implement priority queue的其中一部分,请问有些什
: 么bug和design方面的缺陷吗?谢谢
: template
: class SortedList
: {
: public:
: void Push(T value)
: {
: Node ** where = &m_head;
: while (*where && (*where)->value < value) {

x****f
发帖数: 78
56
又看到这个双指针,觉得自己很牛逼呢? 双指针乱用来把人忽悠。
Node* m_head;
Node ** where = &m_head;
while (*where && (*where)->value < value) {
where = &((*where)->next);
}
*where = new Node(value,*where);
完全改一下Node class,然后用可以用
Node m_head;
Node where = m_head;
while (where && where.value < value) {
where = where.next;
}
where = new Node(value,where);
唉!看到where->Next就讨厌,还是喜欢where.Next容易打出来,也容易看。C#万岁!
!!!
t****t
发帖数: 6806
57
如果抛开原题头脑发昏用链表来做priority list, 以及private access, 少掉的括号,
new/free一类低级错误, 原题的程序在逻辑上其实是对的. 上面凡是指责Node**的都
是土人, 链表插入时因为要照顾头指针, 用指针的指针是以前很常见的写法. 好不好看
懂是另一回事.
至于楼上这位xibaof, 你连C++都没写过吧. 别人问的是C++, 不要拿出java的写法来忽
悠人.

【在 x****f 的大作中提到】
: 又看到这个双指针,觉得自己很牛逼呢? 双指针乱用来把人忽悠。
: Node* m_head;
: Node ** where = &m_head;
: while (*where && (*where)->value < value) {
: where = &((*where)->next);
: }
: *where = new Node(value,*where);
: 完全改一下Node class,然后用可以用
: Node m_head;
: Node where = m_head;

d****i
发帖数: 4809
58
你这个是错的。

【在 x****f 的大作中提到】
: 又看到这个双指针,觉得自己很牛逼呢? 双指针乱用来把人忽悠。
: Node* m_head;
: Node ** where = &m_head;
: while (*where && (*where)->value < value) {
: where = &((*where)->next);
: }
: *where = new Node(value,*where);
: 完全改一下Node class,然后用可以用
: Node m_head;
: Node where = m_head;

d****i
发帖数: 4809
59
没看出一定要用指向指针的指针啊,用下面的简单结构体不就行了吗?
struct Node {
T value;
Node *next;
};

号,

【在 t****t 的大作中提到】
: 如果抛开原题头脑发昏用链表来做priority list, 以及private access, 少掉的括号,
: new/free一类低级错误, 原题的程序在逻辑上其实是对的. 上面凡是指责Node**的都
: 是土人, 链表插入时因为要照顾头指针, 用指针的指针是以前很常见的写法. 好不好看
: 懂是另一回事.
: 至于楼上这位xibaof, 你连C++都没写过吧. 别人问的是C++, 不要拿出java的写法来忽
: 悠人.

t****t
发帖数: 6806
60
结构体不是问题. 你不用**的话就需要判断是不是插在第一个之前来决定是改头指针还
是改某个node. 或者在头上放个dummy node. 这几个都是常见的写法, 你不是号称C
style C++写得很熟么, 这点小事应该都知道啊.

【在 d****i 的大作中提到】
: 没看出一定要用指向指针的指针啊,用下面的简单结构体不就行了吗?
: struct Node {
: T value;
: Node *next;
: };
:
: 号,

相关主题
对指针很熟的高手能否给菜鸟分步骤讲解一下这个单链翻转是怎么实现的?前天On-Site自提Windows开发经验被Interviewer嘲笑了
数组分配问题,求教C++(非VC++) 删除链表时如何对指针操作? 在线等回复!谢谢!
google,facebook用的什么语言?C++ 里push_back 一问
进入Programming版参与讨论
d****i
发帖数: 4809
61
ah, I got it. 我有N>>10年没写链表code了。

【在 t****t 的大作中提到】
: 结构体不是问题. 你不用**的话就需要判断是不是插在第一个之前来决定是改头指针还
: 是改某个node. 或者在头上放个dummy node. 这几个都是常见的写法, 你不是号称C
: style C++写得很熟么, 这点小事应该都知道啊.

t****t
发帖数: 6806
62
C++是不需要写这个. 写C的还是需要的.

【在 d****i 的大作中提到】
: ah, I got it. 我有N>>10年没写链表code了。
d****i
发帖数: 4809
63
嗯,是啊,所以能用C把C++的STL全部写一遍而不出错的人是真神人啊。

【在 t****t 的大作中提到】
: C++是不需要写这个. 写C的还是需要的.
f*******n
发帖数: 12623
64
这是什么意思?用heap或self-balancing binary search tree实现的priority queue
都是O(log n) push和pop。我就是说他的push是O(n)的。

【在 m*******l 的大作中提到】
: insert should be O(1) avg
:
: push

m*******l
发帖数: 12782
65
average

queue

【在 f*******n 的大作中提到】
: 这是什么意思?用heap或self-balancing binary search tree实现的priority queue
: 都是O(log n) push和pop。我就是说他的push是O(n)的。

m*******l
发帖数: 12782
66
think the size changes

【在 m*******l 的大作中提到】
: average
:
: queue

b*****e
发帖数: 474
67
毛病太多了, 我来挑几个:
template
class SortedList
{
public:
// 1. no c'tor nor d'tor? make sure m_head is NULL
void Push(T value) // 2. pass by value? also try const
{
Node ** where = &m_head; // 3. maybe a little confusing, but using
Node** does help a little when *where is NULL or m_head
while (*where && (*where)->value < value) { // 4. consider a
comparator rather than the <
where = &((*where)->next);
}
*where = new Node(value,*where);
}
T Pop()
{
Node* pResult = m_head;
m_head = m_head->next; // 5. when m_head == NULL, bang!
T result = pResult->value; // ditto
free(pResult); // 6. free? use delete with new
return result;
}
int Size() // 7. get an O(1) implementation
{
Node * p = m_head;
int size = 0;
while (p) // 8. missing { ... } for the indented region
++size;
p = p->next;
return size;
}
// also need empty(), clear(), etc
private:
class Node // 9. why private
{
Node(T value_, Node* next_) // 10. pass by value again
{
value = value_; // 11. copy or initialization list
next = next_;
}
T value;
Node* next;
};
Node* m_head;
};

oDesk

【在 b***i 的大作中提到】
: 又发现了几个错误:
: while(p){应该加括号
: p=p->...
: }
: 然后,m_head应该初始化为NULL。
: 这个面试题有难度。我写了十几年C++,还是得通过调试来发现错误。不过,我在oDesk
: 上做理论题,刚过平均水平,被评为C++ beginner。实践题就fail了。

s*********s
发帖数: 35
68
谢谢你的详细纠错。也谢谢大家热心讨论。都非常有帮助。

using

【在 b*****e 的大作中提到】
: 毛病太多了, 我来挑几个:
: template
: class SortedList
: {
: public:
: // 1. no c'tor nor d'tor? make sure m_head is NULL
: void Push(T value) // 2. pass by value? also try const
: {
: Node ** where = &m_head; // 3. maybe a little confusing, but using
: Node** does help a little when *where is NULL or m_head

E*******1
发帖数: 3464
69
priority queue怎么也得用heap实现,用linked list还不如直接上array
l*********s
发帖数: 5409
70
c也有glib呢.

【在 t****t 的大作中提到】
: C++是不需要写这个. 写C的还是需要的.
相关主题
C++ 里push_back 一问问一个关于C++指针的问题
Reversing a singly linked listC++ Q87: What is wrong with this swap function? (转载)
问个C++中重复删除指针的问题Question about type conversion (转载)
进入Programming版参与讨论
x****f
发帖数: 78
71
土人啊? 我就指责Node**,为啥呢? 你能在一堂课里教会人用双指针的,你再来说这
句话。所有教C++编程的人都会Avoid using double pointer. 你也不想想为啥现代语
言已经没人直接使用指针,就因为一旦出错,就会蓝屏。我看你是没写过现语言吧?C+
+我写了三年,没觉得他有啥好的,特别是当要使用->的时候,费事的跟PHP使用$来声
明变量一样,都不是高级(现代)语言。高级语言是给人一看就懂的语言,而不需要再
详细的解释每一行的含义。你觉得别人土就别用高级语言,直接用你的土语去写你自己
才看得明白的代码吧。Java早out啦,学过Java的再学C#的人会第二天就把Java打入冷
宫。

号,

【在 t****t 的大作中提到】
: 如果抛开原题头脑发昏用链表来做priority list, 以及private access, 少掉的括号,
: new/free一类低级错误, 原题的程序在逻辑上其实是对的. 上面凡是指责Node**的都
: 是土人, 链表插入时因为要照顾头指针, 用指针的指针是以前很常见的写法. 好不好看
: 懂是另一回事.
: 至于楼上这位xibaof, 你连C++都没写过吧. 别人问的是C++, 不要拿出java的写法来忽
: 悠人.

m*******l
发帖数: 12782
72
别的不说,我顶最后一句话

C+

【在 x****f 的大作中提到】
: 土人啊? 我就指责Node**,为啥呢? 你能在一堂课里教会人用双指针的,你再来说这
: 句话。所有教C++编程的人都会Avoid using double pointer. 你也不想想为啥现代语
: 言已经没人直接使用指针,就因为一旦出错,就会蓝屏。我看你是没写过现语言吧?C+
: +我写了三年,没觉得他有啥好的,特别是当要使用->的时候,费事的跟PHP使用$来声
: 明变量一样,都不是高级(现代)语言。高级语言是给人一看就懂的语言,而不需要再
: 详细的解释每一行的含义。你觉得别人土就别用高级语言,直接用你的土语去写你自己
: 才看得明白的代码吧。Java早out啦,学过Java的再学C#的人会第二天就把Java打入冷
: 宫。
:
: 号,

t****t
发帖数: 6806
73
你第一没看懂原来的程序, 第二自己给的代码("高级语言"?)也是错的, 第三号称"(指针
)一旦出错就会蓝屏", 说你土我觉得没什么问题. 至于语言的优劣, 大家都知道我不评
论. C#再好, 不能掩盖你的错误.

C+

【在 x****f 的大作中提到】
: 土人啊? 我就指责Node**,为啥呢? 你能在一堂课里教会人用双指针的,你再来说这
: 句话。所有教C++编程的人都会Avoid using double pointer. 你也不想想为啥现代语
: 言已经没人直接使用指针,就因为一旦出错,就会蓝屏。我看你是没写过现语言吧?C+
: +我写了三年,没觉得他有啥好的,特别是当要使用->的时候,费事的跟PHP使用$来声
: 明变量一样,都不是高级(现代)语言。高级语言是给人一看就懂的语言,而不需要再
: 详细的解释每一行的含义。你觉得别人土就别用高级语言,直接用你的土语去写你自己
: 才看得明白的代码吧。Java早out啦,学过Java的再学C#的人会第二天就把Java打入冷
: 宫。
:
: 号,

m*******l
发帖数: 12782
74
我觉得Java和C#比,的话题比较好,哈哈

指针

【在 t****t 的大作中提到】
: 你第一没看懂原来的程序, 第二自己给的代码("高级语言"?)也是错的, 第三号称"(指针
: )一旦出错就会蓝屏", 说你土我觉得没什么问题. 至于语言的优劣, 大家都知道我不评
: 论. C#再好, 不能掩盖你的错误.
:
: C+

t****t
发帖数: 6806
75
我说PHP是最好的语言, 谁赞成, 谁反对?

【在 m*******l 的大作中提到】
: 我觉得Java和C#比,的话题比较好,哈哈
:
: 指针

m*******l
发帖数: 12782
76
PHP和Javascript
都是爱的爱死,恨的恨死...

【在 t****t 的大作中提到】
: 我说PHP是最好的语言, 谁赞成, 谁反对?
N******K
发帖数: 10202
77
你开个话题 我观战

【在 m*******l 的大作中提到】
: 我觉得Java和C#比,的话题比较好,哈哈
:
: 指针

x****f
发帖数: 78
78
第一,原来的程序早在本科第二年就已经写到厌恶了,第二在大学C++是踏上Java课程
的脚踏石,C++代码都看不懂的人还敢出来跟人说Java不好?呵呵!第三,我写的就是
高级语言,C#就是现代高级语言,你不认同去找MS理论去。不懂计算机语言发展史,你
就该去看遍再来讨论哪个是高级语言。第四,据统计微软的所有蓝屏90%都是指针乱用
导致的,现代高级语言的开发就是为了避免直接操作指针。你还停留在研究轮子的时代
,难怪觉得别人土。

指针

【在 t****t 的大作中提到】
: 你第一没看懂原来的程序, 第二自己给的代码("高级语言"?)也是错的, 第三号称"(指针
: )一旦出错就会蓝屏", 说你土我觉得没什么问题. 至于语言的优劣, 大家都知道我不评
: 论. C#再好, 不能掩盖你的错误.
:
: C+

m*******l
发帖数: 12782
79
轮子中枪了,好。

【在 x****f 的大作中提到】
: 第一,原来的程序早在本科第二年就已经写到厌恶了,第二在大学C++是踏上Java课程
: 的脚踏石,C++代码都看不懂的人还敢出来跟人说Java不好?呵呵!第三,我写的就是
: 高级语言,C#就是现代高级语言,你不认同去找MS理论去。不懂计算机语言发展史,你
: 就该去看遍再来讨论哪个是高级语言。第四,据统计微软的所有蓝屏90%都是指针乱用
: 导致的,现代高级语言的开发就是为了避免直接操作指针。你还停留在研究轮子的时代
: ,难怪觉得别人土。
:
: 指针

x****f
发帖数: 78
80
PHP哪都好,就是用你的言语套句话说程序里满目的“$”真的很土。可以的话,我都不
会去触碰它,因为它不是一个为程序员而设计的语言。如今这时代有的是内存和速度,
没必要为了加快速度而去逼迫程序员去接受在每个变量前加个"$". 没使用一次就得打
一次,比唐僧还烦。降低了开发时间不说,让人厌倦才是大问题。相信奔PHP去的都只
是为了省钱,没人真正觉得它是个好语言。

【在 t****t 的大作中提到】
: 我说PHP是最好的语言, 谁赞成, 谁反对?
相关主题
C++问题: 指针变量是哪里产生的?从.NET转Java,求攻略
C++11里list迭代器判空仍然知道具体的list对象吗?Cormen星号题:O(n)遍历二叉树,只能用O(1) extra space
Please recommend a book on .NET, C#请教一个程序调用的内存问题 (转载)
进入Programming版参与讨论
N******K
发帖数: 10202
81
哈哈

【在 x****f 的大作中提到】
: 第一,原来的程序早在本科第二年就已经写到厌恶了,第二在大学C++是踏上Java课程
: 的脚踏石,C++代码都看不懂的人还敢出来跟人说Java不好?呵呵!第三,我写的就是
: 高级语言,C#就是现代高级语言,你不认同去找MS理论去。不懂计算机语言发展史,你
: 就该去看遍再来讨论哪个是高级语言。第四,据统计微软的所有蓝屏90%都是指针乱用
: 导致的,现代高级语言的开发就是为了避免直接操作指针。你还停留在研究轮子的时代
: ,难怪觉得别人土。
:
: 指针

t****t
发帖数: 6806
82
不管你有什么理由, 你的程序是错的. bummer.

【在 x****f 的大作中提到】
: 第一,原来的程序早在本科第二年就已经写到厌恶了,第二在大学C++是踏上Java课程
: 的脚踏石,C++代码都看不懂的人还敢出来跟人说Java不好?呵呵!第三,我写的就是
: 高级语言,C#就是现代高级语言,你不认同去找MS理论去。不懂计算机语言发展史,你
: 就该去看遍再来讨论哪个是高级语言。第四,据统计微软的所有蓝屏90%都是指针乱用
: 导致的,现代高级语言的开发就是为了避免直接操作指针。你还停留在研究轮子的时代
: ,难怪觉得别人土。
:
: 指针

x****f
发帖数: 78
83
哈哈!我以前大学本科上计算机语言课时就写过这样的Research paper,清楚列明Java
已经被C#完全取代,那时候C#才是2.0. C#已经拥有当时Java所拥有的语言优势,甚至
还比它优胜在支持COM开发和直接使用windows API。看现在C#已经5.0了,Java也在努
力抄袭C#的语言优势。什么var, dynamic, LINQ, lambda, 等等。
C#最伟大的创新就是去掉Type declaration. 直接让你用var去定义变量。
Dictionary> dictionary = new Dictionary Dictionary>();
是不是觉得很傻,干嘛要重复两次?
var dictionary = new Dictionary>();
你问,如果你不知道变量的type呢?例如
var scoreList = getScores();
var propertyName = house.Name;
到底scoreList和propertyName是什么type?骄傲了吧? 终于找到C#的毛病。 人家会
一棒子敲你的头,就算你没常识,不知道score是用int代表,不知道House name是用
string表示。这世上有IntelliSense,有Add-in,都能用hover来取得method的资料,
还能ctrl+click直接跳到method去。
还有很多优势,这就不一一列举啦。
Java,呵呵!抛开语言,自从Eclipse转到Visual Studio(VS)后,我就讨厌用Eclipse
了,怎么可以真么慢,连IntelliSense也慢过别人的。 你让我怎么还去拥抱你? 虽然
VS是付费的,但是也有免费版的,用过就知道VS是为开发者而设计的。我们写代码的可
是一整天都在用IDE,一个让你用的烦躁的IDE怎么会让你有心情去解决问题。
说真的,Java没啥不好,就是感觉在Java的世界里自生自灭,没有方向感。 就它的IDE
差,把它给拖累了。 但既然有一个跟它一样好的语言,和比它的IDE还好的平台。 没
理由还未它忠贞守寡吧?
最可悲的是,当两大语言互相竞争得激烈时,这时候大家都走移动路线,被JavaScript
这十几年来被鄙视的小喽喽一刀杀出重围,独占风头。现在不会JavaScript的,几年后
就被IT公司淘汰了。但并不能说JavaScript是个好语言,只能说它有自己的优势,就在
于它的柔性,随便你怎么写都行,你自己知道自己干嘛就行。 可是要让别人读懂你的
代码,也不是件容易的事,除非你将高级语言的规规范用在它身上。
我现在还能看到C#在服务端和windows 8的用处,但是因为JavaScript + HTML5让我看
不到它的未来只能在服务端。

【在 N******K 的大作中提到】
: 你开个话题 我观战
x****f
发帖数: 78
84
阿弥陀佛(阿你脱裤)!施主(死猪),傻海无涯,回头是岸。

【在 t****t 的大作中提到】
: 不管你有什么理由, 你的程序是错的. bummer.
t****t
发帖数: 6806
85
发现出错了就开始东拉西扯, 这是阿三的做派啊.

【在 x****f 的大作中提到】
: 阿弥陀佛(阿你脱裤)!施主(死猪),傻海无涯,回头是岸。
m*******l
发帖数: 12782
86
var是从JAVASCRIPT来的吧?

Java

【在 x****f 的大作中提到】
: 哈哈!我以前大学本科上计算机语言课时就写过这样的Research paper,清楚列明Java
: 已经被C#完全取代,那时候C#才是2.0. C#已经拥有当时Java所拥有的语言优势,甚至
: 还比它优胜在支持COM开发和直接使用windows API。看现在C#已经5.0了,Java也在努
: 力抄袭C#的语言优势。什么var, dynamic, LINQ, lambda, 等等。
: C#最伟大的创新就是去掉Type declaration. 直接让你用var去定义变量。
: Dictionary> dictionary = new Dictionary: Dictionary>();
: 是不是觉得很傻,干嘛要重复两次?
: var dictionary = new Dictionary>();
: 你问,如果你不知道变量的type呢?例如

l*********s
发帖数: 5409
87
please stop self-aggrandizing. There are tons of language feature
comparisons on the internet, you call that research paper? Have you
graduated from Lexington college/Pacific university?

Java

【在 x****f 的大作中提到】
: 哈哈!我以前大学本科上计算机语言课时就写过这样的Research paper,清楚列明Java
: 已经被C#完全取代,那时候C#才是2.0. C#已经拥有当时Java所拥有的语言优势,甚至
: 还比它优胜在支持COM开发和直接使用windows API。看现在C#已经5.0了,Java也在努
: 力抄袭C#的语言优势。什么var, dynamic, LINQ, lambda, 等等。
: C#最伟大的创新就是去掉Type declaration. 直接让你用var去定义变量。
: Dictionary> dictionary = new Dictionary: Dictionary>();
: 是不是觉得很傻,干嘛要重复两次?
: var dictionary = new Dictionary>();
: 你问,如果你不知道变量的type呢?例如

n******t
发帖数: 4406
88
"所有教C++编程的人都会Avoid using double pointer."
你这是那个技校毕业的???

C+

【在 x****f 的大作中提到】
: 土人啊? 我就指责Node**,为啥呢? 你能在一堂课里教会人用双指针的,你再来说这
: 句话。所有教C++编程的人都会Avoid using double pointer. 你也不想想为啥现代语
: 言已经没人直接使用指针,就因为一旦出错,就会蓝屏。我看你是没写过现语言吧?C+
: +我写了三年,没觉得他有啥好的,特别是当要使用->的时候,费事的跟PHP使用$来声
: 明变量一样,都不是高级(现代)语言。高级语言是给人一看就懂的语言,而不需要再
: 详细的解释每一行的含义。你觉得别人土就别用高级语言,直接用你的土语去写你自己
: 才看得明白的代码吧。Java早out啦,学过Java的再学C#的人会第二天就把Java打入冷
: 宫。
:
: 号,

n******t
发帖数: 4406
89
凡是觉得写程序主要的困难在于打字的,应该去当客服。。
至少不应该让这种人搞任何有创造性的开发。

Java

【在 x****f 的大作中提到】
: 哈哈!我以前大学本科上计算机语言课时就写过这样的Research paper,清楚列明Java
: 已经被C#完全取代,那时候C#才是2.0. C#已经拥有当时Java所拥有的语言优势,甚至
: 还比它优胜在支持COM开发和直接使用windows API。看现在C#已经5.0了,Java也在努
: 力抄袭C#的语言优势。什么var, dynamic, LINQ, lambda, 等等。
: C#最伟大的创新就是去掉Type declaration. 直接让你用var去定义变量。
: Dictionary> dictionary = new Dictionary: Dictionary>();
: 是不是觉得很傻,干嘛要重复两次?
: var dictionary = new Dictionary>();
: 你问,如果你不知道变量的type呢?例如

t****t
发帖数: 6806
90
似乎不是同一个意思. 比较接近C++的auto.

【在 m*******l 的大作中提到】
: var是从JAVASCRIPT来的吧?
:
: Java

相关主题
Interview Question数组分配问题,求教
作为返回值得实参是用指针还是引用比较好?google,facebook用的什么语言?
对指针很熟的高手能否给菜鸟分步骤讲解一下这个单链翻转是怎么实现的?前天On-Site自提Windows开发经验被Interviewer嘲笑了
进入Programming版参与讨论
t****t
发帖数: 6806
91
去除冗余还是有它的好处的. 不过把一个不知哪里借鉴来的特性当成"C#最伟大的创新"
, 这就比较容易让人耻笑.

【在 n******t 的大作中提到】
: 凡是觉得写程序主要的困难在于打字的,应该去当客服。。
: 至少不应该让这种人搞任何有创造性的开发。
:
: Java

g*****g
发帖数: 34805
92
Java语言变化慢是有原因的,原因就是用的人多,要考虑向前向后的兼容。哪像
M$那一套,今天造个轮子,明天造个新轮子。这轮子圆不圆你都得用,没得选。
你说的这个duck type,不是什么新东西,也不是C#原创的。
我老说过很多次的,几个语法糖作用有限,你还没明白类库才是第一生产力。
看看今天的类库,只有.net从java那边抄过来的,几乎没有反过来的。近几年
IPO的IT公司更是没听说哪个是用.net的。

Java

【在 x****f 的大作中提到】
: 哈哈!我以前大学本科上计算机语言课时就写过这样的Research paper,清楚列明Java
: 已经被C#完全取代,那时候C#才是2.0. C#已经拥有当时Java所拥有的语言优势,甚至
: 还比它优胜在支持COM开发和直接使用windows API。看现在C#已经5.0了,Java也在努
: 力抄袭C#的语言优势。什么var, dynamic, LINQ, lambda, 等等。
: C#最伟大的创新就是去掉Type declaration. 直接让你用var去定义变量。
: Dictionary> dictionary = new Dictionary: Dictionary>();
: 是不是觉得很傻,干嘛要重复两次?
: var dictionary = new Dictionary>();
: 你问,如果你不知道变量的type呢?例如

x****f
发帖数: 78
93
Well, please make your point. Otherwise nobody is going to understand what
you are trying to say. Stop throwing name of college, show some of your own
skills, college and degree means nothing in programming. Got it?

【在 l*********s 的大作中提到】
: please stop self-aggrandizing. There are tons of language feature
: comparisons on the internet, you call that research paper? Have you
: graduated from Lexington college/Pacific university?
:
: Java

z****e
发帖数: 54598
94
我们mac用户写程序时候觉得java蛮好
.net暴烂,连跑都不能跑,一个跑都不能跑的破烂,还怎么让人干活?

Java

【在 x****f 的大作中提到】
: 哈哈!我以前大学本科上计算机语言课时就写过这样的Research paper,清楚列明Java
: 已经被C#完全取代,那时候C#才是2.0. C#已经拥有当时Java所拥有的语言优势,甚至
: 还比它优胜在支持COM开发和直接使用windows API。看现在C#已经5.0了,Java也在努
: 力抄袭C#的语言优势。什么var, dynamic, LINQ, lambda, 等等。
: C#最伟大的创新就是去掉Type declaration. 直接让你用var去定义变量。
: Dictionary> dictionary = new Dictionary: Dictionary>();
: 是不是觉得很傻,干嘛要重复两次?
: var dictionary = new Dictionary>();
: 你问,如果你不知道变量的type呢?例如

l*********s
发帖数: 5409
95
my point is that you are Zhuang-B.

own

【在 x****f 的大作中提到】
: Well, please make your point. Otherwise nobody is going to understand what
: you are trying to say. Stop throwing name of college, show some of your own
: skills, college and degree means nothing in programming. Got it?

x****f
发帖数: 78
96
兄弟,谁都知道库重要,现在讨论的是语言本身和IDE。哪个库不都是从别的库抄过来
的。
那个var好像叫Anonymous type,我也不太清楚。 反正好用就行,管他叫什么,从哪里
抄来。我没说他原创,只说他创新的去掉那个笨拙的Dictionary string, int>> dictionary = new Dictionary Dictionary>();变量声明,而不是像Java一样一成不变,到现在还在用
这个。
还有你说的轮子论,纠正你一下,MS的每个Framework都是独立的,你完全可以一直用
一个旧的framework来写程序而不受升级影响,是有的选的。为什么人们都选最新版,
因为它不断加入用户想要的feature。
唉!懒得一一列了,发些别人的吧,我的07年的就没啥好发的了。
http://blog.kalistick.com/non-classe/why-java-folks-should-stop
http://www.slideshare.net/jeffz/why-java-sucks-and-c-rocks-fina

【在 g*****g 的大作中提到】
: Java语言变化慢是有原因的,原因就是用的人多,要考虑向前向后的兼容。哪像
: M$那一套,今天造个轮子,明天造个新轮子。这轮子圆不圆你都得用,没得选。
: 你说的这个duck type,不是什么新东西,也不是C#原创的。
: 我老说过很多次的,几个语法糖作用有限,你还没明白类库才是第一生产力。
: 看看今天的类库,只有.net从java那边抄过来的,几乎没有反过来的。近几年
: IPO的IT公司更是没听说哪个是用.net的。
:
: Java

x****f
发帖数: 78
97
I see, that's a good point. If you think I am, then yes I am. So let's
convince me that you are not 装ing B by throwing a ton of words to make your
two-words point.

【在 l*********s 的大作中提到】
: my point is that you are Zhuang-B.
:
: own

x****f
发帖数: 78
98
你管他哪里借,哪里抄。 你有本事去跟三星说让他别抄苹果的。你有本事说一句苹果
没有抄袭过,世上所有的创新都是从别的地方借鉴再改造出来的。好东西就要抄,抄完
改进就是我的创新。你没我的新,就不叫创新。懂什么叫创新吗?不是弄些让人不明白
,从来没有见过的东西才叫创新,而是要让用户觉得这个功能是他们一直想要的,却在
他处得不到。

新"

【在 t****t 的大作中提到】
: 去除冗余还是有它的好处的. 不过把一个不知哪里借鉴来的特性当成"C#最伟大的创新"
: , 这就比较容易让人耻笑.

g*****g
发帖数: 34805
99
开发是一整个ecosystem,你限定语言和IDE本身就显得很幼稚。一个典型的例子就是
Objective
C,几十年的老古董。iPhone出来才6年时间,就秒了C#。
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.htm
.Net有NHibernate, Spring.Net,以前WCF只做SOAP,这几年Jersey/Restful火了,赶
紧抄了个webapi。Lucene也是port的,版本一直低一个。Hadoop只能用streaming。
我的意思是抄并不可耻,C#本来就是从Java那抄的,加一点Delphi的feature。但如果
想微软这样工程师本来就很烂,开源community又不成气候。创新必然不行。假以时日
,这个平台只有混吃等死。C#去年初还是tiobe index排名第三的语言,现在只剩第6,

【在 x****f 的大作中提到】
: 兄弟,谁都知道库重要,现在讨论的是语言本身和IDE。哪个库不都是从别的库抄过来
: 的。
: 那个var好像叫Anonymous type,我也不太清楚。 反正好用就行,管他叫什么,从哪里
: 抄来。我没说他原创,只说他创新的去掉那个笨拙的Dictionary: string, int>> dictionary = new Dictionary: Dictionary>();变量声明,而不是像Java一样一成不变,到现在还在用
: 这个。
: 还有你说的轮子论,纠正你一下,MS的每个Framework都是独立的,你完全可以一直用
: 一个旧的framework来写程序而不受升级影响,是有的选的。为什么人们都选最新版,
: 因为它不断加入用户想要的feature。

t****t
发帖数: 6806
100
改进在哪儿?

【在 x****f 的大作中提到】
: 你管他哪里借,哪里抄。 你有本事去跟三星说让他别抄苹果的。你有本事说一句苹果
: 没有抄袭过,世上所有的创新都是从别的地方借鉴再改造出来的。好东西就要抄,抄完
: 改进就是我的创新。你没我的新,就不叫创新。懂什么叫创新吗?不是弄些让人不明白
: ,从来没有见过的东西才叫创新,而是要让用户觉得这个功能是他们一直想要的,却在
: 他处得不到。
:
: 新"

相关主题
C++(非VC++) 删除链表时如何对指针操作? 在线等回复!谢谢!问个C++中重复删除指针的问题
C++ 里push_back 一问问一个关于C++指针的问题
Reversing a singly linked listC++ Q87: What is wrong with this swap function? (转载)
进入Programming版参与讨论
x****f
发帖数: 78
101
唉!你既然说到ecosystem, NHibernate了,我就提个.net的功能Java没有的吧,.net
能用C#直接写程序,植入MS SQL Server去运行,什么大型数据组合,过滤都用C#语言
写,修改方便,不需要用SQL cursor或temp table等手段。因为SQL Server就是基于
CLR的,能运行CLR代码。这个Java做的到吗?
Objective C没用过,所以不好评论,在我的理解秒杀C#是要冲上windows去代替C#作为
主要开发语言的才叫秒杀。
WCF和WebAPI更能体现MS的创新,本来的MS平台上创建服务是件多难的事,要配置很多
参数。现在多爽,几下就有个服务出来了,更爽的是现在还能脱离IIS自己host。如果
这还不叫创新,我想不到啥叫创新了。以前他们最卖座的就是IIS,死都不肯让用户脱
离IIS。
唉!跟你说了只论语言,不论库,库多的是,哪讲得完。再讲到MVC去就头大了。哈哈!
总之,得试过你才知道刀子锋不锋利。在怎么纸上论剑都没用。

【在 g*****g 的大作中提到】
: 开发是一整个ecosystem,你限定语言和IDE本身就显得很幼稚。一个典型的例子就是
: Objective
: C,几十年的老古董。iPhone出来才6年时间,就秒了C#。
: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.htm
: .Net有NHibernate, Spring.Net,以前WCF只做SOAP,这几年Jersey/Restful火了,赶
: 紧抄了个webapi。Lucene也是port的,版本一直低一个。Hadoop只能用streaming。
: 我的意思是抄并不可耻,C#本来就是从Java那抄的,加一点Delphi的feature。但如果
: 想微软这样工程师本来就很烂,开源community又不成气候。创新必然不行。假以时日
: ,这个平台只有混吃等死。C#去年初还是tiobe index排名第三的语言,现在只剩第6,

x****f
发帖数: 78
102
mac pro能装windows你不装,非用mac OS。当然跑不了啦。 就跟一个人活在自己世界
里,然后跟别人说“我的世界很好玩,外面世界不好玩。”同样的道理。

【在 z****e 的大作中提到】
: 我们mac用户写程序时候觉得java蛮好
: .net暴烂,连跑都不能跑,一个跑都不能跑的破烂,还怎么让人干活?
:
: Java

x****f
发帖数: 78
103
改进当然在语言本身,难道会在你身上不成?呵呵!

【在 t****t 的大作中提到】
: 改进在哪儿?
t****t
发帖数: 6806
104
well, 你接着瞎扯吧. 扯完了有空解释下, 为什么用这么高级的C#语言, 你写个简单的
链表, 代码还是错的. 啊, 我忘了, 作为阿三的做派, 你肯定是没空的了.

【在 x****f 的大作中提到】
: 改进当然在语言本身,难道会在你身上不成?呵呵!
z****e
发帖数: 54598
105
这话从一个只会用windows的嘴里说出来,着实是件很滑稽和讽刺的事
同学,你工作了吗?老板没有让你折腾一下linux或者unix系的server?

【在 x****f 的大作中提到】
: mac pro能装windows你不装,非用mac OS。当然跑不了啦。 就跟一个人活在自己世界
: 里,然后跟别人说“我的世界很好玩,外面世界不好玩。”同样的道理。

g*****g
发帖数: 34805
106
http://docs.oracle.com/cd/B19306_01/java.102/b14187/chthree.htm
无知者无畏。先不说把东西放进数据库服务器上跑是愚蠢的增加系统瓶颈的大忌,这年
头Stored
Procedure已经越来越少了。就说Java在数据库服务器上跑,SQL Server是不行,但是
Oracle可以,
http://docs.oracle.com/cd/B19306_01/java.102/b14187/chthree.htm
Oracle的占了所有数据库收入的五成你知道吧,SQL Server算个屁呀。井底之蛙。
至于web service脱离IIS,2000年Jetty就Open source了,但凡能跑Java就能起web
service,servlet, ebj spec更是从来没规定必须哪个vendor,你到现在把脱离IIS当
个宝贝。坐井观天到这份上也算极品。

net

【在 x****f 的大作中提到】
: 唉!你既然说到ecosystem, NHibernate了,我就提个.net的功能Java没有的吧,.net
: 能用C#直接写程序,植入MS SQL Server去运行,什么大型数据组合,过滤都用C#语言
: 写,修改方便,不需要用SQL cursor或temp table等手段。因为SQL Server就是基于
: CLR的,能运行CLR代码。这个Java做的到吗?
: Objective C没用过,所以不好评论,在我的理解秒杀C#是要冲上windows去代替C#作为
: 主要开发语言的才叫秒杀。
: WCF和WebAPI更能体现MS的创新,本来的MS平台上创建服务是件多难的事,要配置很多
: 参数。现在多爽,几下就有个服务出来了,更爽的是现在还能脱离IIS自己host。如果
: 这还不叫创新,我想不到啥叫创新了。以前他们最卖座的就是IIS,死都不肯让用户脱
: 离IIS。

x****u
发帖数: 44466
107
在Mac上面写.Net是行为艺术么?

【在 z****e 的大作中提到】
: 我们mac用户写程序时候觉得java蛮好
: .net暴烂,连跑都不能跑,一个跑都不能跑的破烂,还怎么让人干活?
:
: Java

b***i
发帖数: 3043
108
I concur. Why don't I just concur.

【在 t****t 的大作中提到】
: 我说PHP是最好的语言, 谁赞成, 谁反对?
b*******s
发帖数: 5216
109
听着像微软系统上的程序员

【在 x****f 的大作中提到】
: 你管他哪里借,哪里抄。 你有本事去跟三星说让他别抄苹果的。你有本事说一句苹果
: 没有抄袭过,世上所有的创新都是从别的地方借鉴再改造出来的。好东西就要抄,抄完
: 改进就是我的创新。你没我的新,就不叫创新。懂什么叫创新吗?不是弄些让人不明白
: ,从来没有见过的东西才叫创新,而是要让用户觉得这个功能是他们一直想要的,却在
: 他处得不到。
:
: 新"

x****f
发帖数: 78
110
同学啊,你买mac book不就是因为它外表好看而已嘛,凭良心讲你真认为它的系统牛?
我老板跟我说别去搞什么省钱计划,到头来失去的是先机和顾客。钱是赚回来的,不是
省出来的。明明可以用半年做出来的东西,你就别去拖用一年半去。他说让我想办法省
钱的老板就是个没用的老板,让我以后见到这样的老板就掉头走。

【在 z****e 的大作中提到】
: 这话从一个只会用windows的嘴里说出来,着实是件很滑稽和讽刺的事
: 同学,你工作了吗?老板没有让你折腾一下linux或者unix系的server?

相关主题
C++ Q87: What is wrong with this swap function? (转载)C++11里list迭代器判空仍然知道具体的list对象吗?
Question about type conversion (转载)Please recommend a book on .NET, C#
C++问题: 指针变量是哪里产生的?从.NET转Java,求攻略
进入Programming版参与讨论
x****f
发帖数: 78
111
呀!这是个好问题啊。因为高级语言跟我说:“你傻啊?你搭上我还去磨轮子干嘛,我
的宝马车已经可以开动的了,你不赶快上车,你就输咯。”, 所以没必要在写个链表
,需要自定义链表时就继承一个就好。当然没空跟你去磨轮子啦。哈哈!

【在 t****t 的大作中提到】
: well, 你接着瞎扯吧. 扯完了有空解释下, 为什么用这么高级的C#语言, 你写个简单的
: 链表, 代码还是错的. 啊, 我忘了, 作为阿三的做派, 你肯定是没空的了.

x****f
发帖数: 78
112
唉!你不清楚MS现在所有产品都是基于CLR呢?合理调用同族的代码使用完后被GC回收
,大忌?写一万条SQL Statement在一个文件里去执行一个几百条高级语言就能做到的
工作,到DBA走人后没人看得懂,那才叫大忌。你说这年头SPROC越来越少,我也希望。
可是当你老板是个DBA,他要让一切都在SQL Server上执行时,那就得用到这个
Database CLR功能。
啊!你你找了那么久就只找到这个developer's guide,却只返回一个string啊? 然后
呢? 唉!真替你悲哀,啥都没有,最后还是得靠自己去摸索。真想问问你老板给你们
的development timeline有多久,半年,一年?还是一年半?呵呵!我从第一次接触
Database CLR到能用它来做Advanced table Pivot function也就用了两三天时间。啥
?太多了?你用一天?呵呵!我们不是卖命的,一天只工作8个小时。 还要开会,上网
,吃饭聊天。
更替你悲哀的是,你写完程序,还要跑去载入到Oracle,然后还要通过printLn来慢慢
测试除错。 debugger它的功能就是帮助我们debug,我想他在哪停它就哪停。就算代码
是被database执行的也一样。这就是CLR的好处,也不介意Oracle抄啊,Opps!不好意
思,忘了Oracle不是跟Java统一族的,不过没关系了,只要肯去做总能做到的。
的确,Oracle有它的优势,不然也不会那么多大公司用它。但跑题了,不是在讨论哪个
database好用。要说SQL Server对.net development的好处,得说几天呢。
至于脱离IIS运行服务这话题,我要表达的是MS让developers能很快的写出和测试服务
,而不需要繁琐的去设置一大堆后还不能运行服务。这就是我们developers想要的便捷
。如果Java能做到developers friendly,那我相信没人会离开它。

【在 g*****g 的大作中提到】
: http://docs.oracle.com/cd/B19306_01/java.102/b14187/chthree.htm
: 无知者无畏。先不说把东西放进数据库服务器上跑是愚蠢的增加系统瓶颈的大忌,这年
: 头Stored
: Procedure已经越来越少了。就说Java在数据库服务器上跑,SQL Server是不行,但是
: Oracle可以,
: http://docs.oracle.com/cd/B19306_01/java.102/b14187/chthree.htm
: Oracle的占了所有数据库收入的五成你知道吧,SQL Server算个屁呀。井底之蛙。
: 至于web service脱离IIS,2000年Jetty就Open source了,但凡能跑Java就能起web
: service,servlet, ebj spec更是从来没规定必须哪个vendor,你到现在把脱离IIS当
: 个宝贝。坐井观天到这份上也算极品。

l***p
发帖数: 358
113
一道C++引出这么多废话,你们自己人不互相作贱自己人会死吗?
就事论事,虽然你已经指出这只是不分代码,但是希望你明白:
1)你的class最大的问题在于constructor/destructor/copy constructor/assign
operator,从这个角度你的这个类是一个封装错误的C++,典型的C风格
1) STL虽然也不是thread safe的,但在C++的实际应用环境中,multi-thread是随处可
见的,所以你的这个类..
g*****g
发帖数: 34805
114
你懂不懂Oracle占了市场5成份额,SQL Server最多两成算个屁呀?你懂不懂我为什么说
商业逻辑要放应用服务器上,而不是数据库里,不管是用什么语言写的stored
procedure。
你懂不懂我干的活,都是我定的架构,老板说了不算?你懂不懂世界上除了M$以外,还
有很多
公司,.NET还没写出啥业界领先的产品,尽管比Java多两个语法糖。
你写个helloworld用M$那一套是很快没有错,但你懂不懂show off你会写Helloworld很
丢人?

【在 x****f 的大作中提到】
: 唉!你不清楚MS现在所有产品都是基于CLR呢?合理调用同族的代码使用完后被GC回收
: ,大忌?写一万条SQL Statement在一个文件里去执行一个几百条高级语言就能做到的
: 工作,到DBA走人后没人看得懂,那才叫大忌。你说这年头SPROC越来越少,我也希望。
: 可是当你老板是个DBA,他要让一切都在SQL Server上执行时,那就得用到这个
: Database CLR功能。
: 啊!你你找了那么久就只找到这个developer's guide,却只返回一个string啊? 然后
: 呢? 唉!真替你悲哀,啥都没有,最后还是得靠自己去摸索。真想问问你老板给你们
: 的development timeline有多久,半年,一年?还是一年半?呵呵!我从第一次接触
: Database CLR到能用它来做Advanced table Pivot function也就用了两三天时间。啥
: ?太多了?你用一天?呵呵!我们不是卖命的,一天只工作8个小时。 还要开会,上网

z****e
发帖数: 54598
115
我觉得它的系统跟linux一族的比较接近
我migrate起来不用太多折腾就能用
你真要想不省钱,ibm那一套就怕你用不起
一个websphere的license一个cpu就要¥20万+一年
折合美刀也是$3w多一年,一个cluster光license一年砸下去几十万小意思
连个version control都需要有专门的组来维护
没有几个公司真用得起的
实际上真不缺钱的公司比如银行政府电信什么,一直都是ibm之类的主要客户
你那点小伎俩就不要拿出来现了,没几个不缺钱的主真看得上

【在 x****f 的大作中提到】
: 同学啊,你买mac book不就是因为它外表好看而已嘛,凭良心讲你真认为它的系统牛?
: 我老板跟我说别去搞什么省钱计划,到头来失去的是先机和顾客。钱是赚回来的,不是
: 省出来的。明明可以用半年做出来的东西,你就别去拖用一年半去。他说让我想办法省
: 钱的老板就是个没用的老板,让我以后见到这样的老板就掉头走。

z****e
发帖数: 54598
116
您还在给dba打工啊?失敬失敬
我今天在路上时候琢磨了一下persistence的代
我觉得用store proc.那些都是第一代的server系统
其次第二代系统就是orm那些东西,兴起于hibernate的时代
到现在nosql这些是第三代产品,每一代兴起之后,前一代都要被拍死在沙滩上
当然要马上就挂掉,不是那么容易的,所以一般这种老旧代码都会沿用下去
然后找些愣头青来维护这些破烂
你很幸运地进入到了一家第一代,也就是大概20年前架构的一家公司
是不是感觉很爽?

【在 x****f 的大作中提到】
: 唉!你不清楚MS现在所有产品都是基于CLR呢?合理调用同族的代码使用完后被GC回收
: ,大忌?写一万条SQL Statement在一个文件里去执行一个几百条高级语言就能做到的
: 工作,到DBA走人后没人看得懂,那才叫大忌。你说这年头SPROC越来越少,我也希望。
: 可是当你老板是个DBA,他要让一切都在SQL Server上执行时,那就得用到这个
: Database CLR功能。
: 啊!你你找了那么久就只找到这个developer's guide,却只返回一个string啊? 然后
: 呢? 唉!真替你悲哀,啥都没有,最后还是得靠自己去摸索。真想问问你老板给你们
: 的development timeline有多久,半年,一年?还是一年半?呵呵!我从第一次接触
: Database CLR到能用它来做Advanced table Pivot function也就用了两三天时间。啥
: ?太多了?你用一天?呵呵!我们不是卖命的,一天只工作8个小时。 还要开会,上网

1 (共1页)
进入Programming版参与讨论
相关主题
对指针很熟的高手能否给菜鸟分步骤讲解一下这个单链翻转是怎么实现的?问一个关于C++指针的问题
数组分配问题,求教C++ Q87: What is wrong with this swap function? (转载)
google,facebook用的什么语言?Question about type conversion (转载)
前天On-Site自提Windows开发经验被Interviewer嘲笑了C++问题: 指针变量是哪里产生的?
C++(非VC++) 删除链表时如何对指针操作? 在线等回复!谢谢!C++11里list迭代器判空仍然知道具体的list对象吗?
C++ 里push_back 一问Please recommend a book on .NET, C#
Reversing a singly linked list从.NET转Java,求攻略
问个C++中重复删除指针的问题Cormen星号题:O(n)遍历二叉树,只能用O(1) extra space
相关话题的讨论汇总
话题: node话题: value话题: where话题: head话题: next