由买买提看人间百态

topics

全部话题 - 话题: 操作符
首页 上页 1 2 3 下页 末页 (共3页)
w********s
发帖数: 1570
1
http://www.ibm.com/developerworks/cn/aix/library/1307_lisl_c11/
以一个简单的 string 类为示例,实现拷贝构造函数和拷贝赋值操作符。
示例程序 :
class MyString {
private:
char* _data;
size_t _len;
void _init_data(const char *s) {
_data = new char[_len+1];
memcpy(_data, s, _len);
_data[_len] = '
c*******8
发帖数: 707
2
来自主题: JobHunting版 - 求Tango面经
单链表,反转,计数,删除,移前半到后半...
list 的 iterator 的成员函数,操作符 *,前序++, 后序++. 请记住前序和后序的
prototype 是不一样的(翻书去吧)
c**s
发帖数: 159
3
转载一个大家共勉。
由于之前Amazon已经发了offer,deadline也快到了,所以不管这次Google on-site结
果如何,都不想再继续折腾,Amazon or Google。求职季到此结束,所以,是时候写点
东西回报地里了。本人NYU-POLY,EE专业,作为一个转行的,感觉自己的求职之路还算
挺顺利,希望自己的经历经验能对各位尤其是非CS的各位有所帮助。
一。
感谢一亩三分地,mitbbs, 米群网(QQ群:320065698,可能满了,但是管理员会清理
,大家可以加加试试,另外米群网也是一个非常不错的求职平台,大家可以通过这个链
接去注册下http://www.meetqun.com/member.php?mod=register&x=12)提供的求职信息,内推信息及面经,当然也得感谢LeetCode和CC150。充分利用上述资源十分必要,而且感觉这些已经足够了。
二。
觉得有必要介绍下自己的准备情况,也算给大家涨点自信。
前面说了我是EE的,所学课程,包括本科的课,都没有什么和计算机相关的。去年暑假
决定开始自学CS,为了毕业好找工作,也就是那时候我才写出了自己第... 阅读全帖
c******n
发帖数: 4965
4
来自主题: JobHunting版 - 请教个G题目
这个就 recursive parse 最简单, 因为操作符左结合的, 反过来不行
U***A
发帖数: 849
5
来自主题: JobHunting版 - zenefits店面 -已挂了
我当时是这么做的。我说为了简单起见,我把所有的都定义为public。
Class Operation{
public char operator ;//操作符
public Operation[] operation_list; //存储operation的操作数
public int[] int_list; //存储非operation的整数操作数
//其他初试化的东西
}
Class DoOperation{
int ope_result(Operation x){
char opt = x.operator;
int[] int_list = x.int_list;
Operation[] ope_list = x.operation_list;
int result = 0;
for(int i=0; i阅读全帖
l******s
发帖数: 3045
6
想象一下用手去挨个提溜中间的操作符,每次提溜出一个二叉树。

发帖数: 1
7
是因为有不同种的操作符,如果一个操作一个函数,几个函数会重合很多,所以需要找
到一个方式,写尽可能少的CODE吗,比如说一个函数就覆盖所有的操作。
t*******r
发帖数: 22634
8
其实主要是对称,用了“抽象”,后面两个词最好改成“集合”和“操作符”。^o^
G*******X
发帖数: 1101
9
强re
物理难在物理过程和边界条件分析等等,高中物理只要做题了,那点有限的几个简单过
程早就烂熟于胸,剩下的说白了还是数学题,而且是连微积分都不怎么涉及的简单算数
。。。要是高中数学都不行,还没等分析物理过程,遇到各种张量运算和操作符就直接
挂掉了
e****a
发帖数: 4783
10
这几天忽然去下载了一堆毛选来看,原因很简单,小时候讨厌政治课,
是因为枯燥和教条;后来不看毛选,是因为觉得没用。
不看不知道,主席的东西还是很有道理的,比如为人民服务,和矛盾论
操作系统和浏览器,都是软件。软件,就是为人民服务的,从操作硬盘,
到播放毛片,人民需要什么,软件就去干什么。
软件是人写的,很复杂,做的事情越多,复杂程度就越高。所以软件不是
胡椒面,到处都能撒。怎么办?要抓住主要矛盾,用软件解决最主要的问题。
在计算机刚出现的时候,什么是主要矛盾?是人民群众日益增长的,
要使用计算机的需求,和数十万个继电器,电子管和晶体管之间的矛盾。
所以那个时候,出现的是对硬件的抽象化:把电路的通断,抽象为0和1,
转化为纸片/纸带上的孔,把01组织成byte,word,把操作符和操作数
组织成汇编语言。
UNIX和C语言的出现,标志着小型机的标准化:人们可以用一种标准的
抽象模型,来描述“计算机”。这是2的N次方的计算单元抽象化的终结,
也是新的矛盾的开始:这个时候的矛盾,是人民群众要使用计算机的需求,
和众多硬件的可操作性的矛盾。硬件已经被UNIX抽象为:
1.CPU,一个可以被分时使
f********t
发帖数: 6999
11
【 以下文字转载自 Military 讨论区 】
发信人: fuckthrust (...), 信区: Military
标 题: IBM高级软件工程师老印的示例代码,大家看看有多少个bug? (转载)
发信站: BBS 未名空间站 (Sat Mar 22 22:58:24 2014, 美东)
发信人: winetricks (winetricks), 信区: JobHunting
发信站: BBS 未名空间站 (Sat Mar 22 10:46:35 2014, 美东)
http://www.ibm.com/developerworks/cn/aix/library/1307_lisl_c11/
以一个简单的 string 类为示例,实现拷贝构造函数和拷贝赋值操作符。
示例程序 :
class MyString {
private:
char* _data;
size_t _len;
void _init_data(const char *s) {
_data = new char[_len+1];
memcpy(_data, s, _len);
... 阅读全帖
e****a
发帖数: 4783
12
【 以下文字转载自 SanFrancisco 讨论区 】
发信人: eraera (美人他爹), 信区: SanFrancisco
标 题: 【原创】浏览器是怎么变成操作系统的(2)
发信站: BBS 未名空间站 (Thu Jul 23 07:06:33 2009, 美东)
这几天忽然去下载了一堆毛选来看,原因很简单,小时候讨厌政治课,
是因为枯燥和教条;后来不看毛选,是因为觉得没用。
不看不知道,主席的东西还是很有道理的,比如为人民服务,和矛盾论
操作系统和浏览器,都是软件。软件,就是为人民服务的,从操作硬盘,
到播放毛片,人民需要什么,软件就去干什么。
软件是人写的,很复杂,做的事情越多,复杂程度就越高。所以软件不是
胡椒面,到处都能撒。怎么办?要抓住主要矛盾,用软件解决最主要的问题。
在计算机刚出现的时候,什么是主要矛盾?是人民群众日益增长的,
要使用计算机的需求,和数十万个继电器,电子管和晶体管之间的矛盾。
所以那个时候,出现的是对硬件的抽象化:把电路的通断,抽象为0和1,
转化为纸片/纸带上的孔,把01组织成byte,word,把操作符和操作数
组织成汇编语言。
UNIX和
o******h
发帖数: 1142
13
第一次在meter停车被罚。有没有办法免除,或者减少罚款?
还有我对这个ticket存有疑问。那个meter写的是4pm没法投币了,4pm之后不能停车,
否则会被
tow away.我投币是到4pm的。然后4:05pm直接给了一张$45的ticket. 这种操作符合规
定吗?
既然写的是tow away,就应该tow啊。
b*s
发帖数: 82482
14
来自主题: LeisureTime版 - 问个xxoo的问题
这个叫做操作符重载,operator overloading。xoxo和sm都被overloaded了。

如果楼里的二叔们都这么理解,我只好面壁去了。
b*s
发帖数: 82482
15
来自主题: LeisureTime版 - 繁荣版面,包子随意
关键是很多人都没有看懂,被误导了啊……
重载操作符需要慎重……

现在都忙,只要能看懂,少敲一个键是一个。。。
g***r
发帖数: 6820
16
LOL
this is a good one!
等CS专业的来拍你不懂操作符优先级!
f********t
发帖数: 6999
17
【 以下文字转载自 Military 讨论区 】
发信人: fuckthrust (...), 信区: Military
标 题: IBM高级软件工程师老印的示例代码,大家看看有多少个bug? (转载)
发信站: BBS 未名空间站 (Sat Mar 22 22:58:24 2014, 美东)
发信人: winetricks (winetricks), 信区: JobHunting
发信站: BBS 未名空间站 (Sat Mar 22 10:46:35 2014, 美东)
http://www.ibm.com/developerworks/cn/aix/library/1307_lisl_c11/
以一个简单的 string 类为示例,实现拷贝构造函数和拷贝赋值操作符。
示例程序 :
class MyString {
private:
char* _data;
size_t _len;
void _init_data(const char *s) {
_data = new char[_len+1];
memcpy(_data, s, _len);
... 阅读全帖
z***e
发帖数: 5393
18
来自主题: paladin版 - 听说1+1可以不等于2
这个有点意思。
其实就是软件中的操作符重载。
今天假设我要用计算机来创建一个虚拟世界,我就overload operator+,让1+1=3.
这个虚拟世界发展到未来,成了matrix,人们都认为1+1=3就是世界的公理...
然后来了外形超级hacker,把这个operator+又重载了,变成1+1=5,这就是数学规律的
改变吧。
计算机可以重载,我们这个宇宙难道不能重载么?

率)
c**c
发帖数: 2593
19
来自主题: SciFiction版 - 第三个旧帖
Date: Thu, 7 Aug 1997 21:23:44 +0800 (SST)
To: XYS Friends
Subject: Re: 围棋
在深蓝大战卡斯帕罗夫的时候,在深蓝的网页上有一篇克拉克的科
幻超短篇,背景是遥远的未来,地球上已由机器文明取代了人类文
明,小说写的是两台超级电脑之间的对话:电脑甲问电脑乙为何把
某某区域彻底摧毁,那个区域的某些物种已经发展出了一定程度的
智能文明,就这么毁掉殊为可惜;电脑乙答道那些物种感染上一种
极其危险的传染病,在没有其他办法控制传染病蔓延的情况下,唯
有将整个区域摧毁一途。电脑甲自然追问是什么传染病这么厉害,
电脑乙大略地知道是一种远古传下来的数学游戏,任何智能形式一
旦接触到游戏规则,便会沉溺进去再也无法自拔。电脑乙也已把自
己记忆中关于这个游戏的部份抹掉,在电脑甲追问下,经过翻箱倒
柜反复搜索,找到了一个线索:这个数学游戏只有六个操作符:
王、后、相、马、车、兵。
这篇小说写于1979年,那时克拉克还没有预见到短短十几年之
后电脑已可以和人类最优秀的棋手一较高下,也许再过
o***g
发帖数: 2784
20
有java
有javascript
没有java script
javascript语法类似于java,这个就见仁见智了,如果说一些操作符是一样的也算的话。
javascript实现一些动态效果没错,但是它本身不提供网络连接的功能,所以和jsp提供
的动态效果是完全两码事。他只能针对客户端的DOM(Document Object Model)的操作。
jsp的动态效果完全是服务器端的。
我一直觉得jsp不能算是一种语言
javascript如果光说语法的话,和html的语法大体相当。
但是要用好javascript就比html麻烦多了。
T*********g
发帖数: 496
21
人家问的是操作符重载,,,C++比JAVA强大多了。。。。
o******r
发帖数: 259
22
Sorry,记错了,
当需要access两个class的 private data时用friend function.
另外,当操作符左边是class object的时候, 才会调用class member,
否则用friend function,
比如2个String相加,
String myStr;
"abcd" + myStr 最好定义friend function
c****e
发帖数: 1453
23
来自主题: Programming版 - a string define question (c++)
俺觉得是, 在第二种情况下, 编译器不会认为"Hello"后面的 + 重载了, 因为第一个是
const char*, 所以不行. 第一种情况下, 编译器知道 hello这个string后面的+是调用
string::operator +, 加上对于const char*的implicit conversion, 就成了string +
string.
利用这个implicit conversion的时候, 需要第一个是object触发你需要的操作符, 不然编译器会当成普通数据类型处理的.
g*********s
发帖数: 1782
24
来自主题: Programming版 - 这段code有啥问题?
A or A&?
具体到这个例子,M["hello"]=A(); 展开的话是M先创建一个"hello"为key的节点,A()
创建一个临时匿名对象A,再通过赋值操作符函数,内容复制到M["hello"]里去?之后
临时匿名对象消失?
我印象中很多参考书都说constructor没有返回类型。刚才google了一下这样的说法不
少。
现在看来,精确的说法是constructor不能被程序员显式指定返回类型。
f*******y
发帖数: 988
25
来自主题: Programming版 - 重载 ^ 操作符编译出错
提示不是很清楚么
再说你这个是典型的理解错误,随便一本书上都会告诉你为啥不行的
k**f
发帖数: 372
26
来自主题: Programming版 - 重载 ^ 操作符编译出错
You cannot overload operators for built in types like double.
f******y
发帖数: 2971
27
来自主题: Programming版 - 重载 ^ 操作符编译出错
至少有一个是自定义的
l*****d
发帖数: 359
28
来自主题: Programming版 - 重载 ^ 操作符编译出错
lz牛的,这个也想重载
a****l
发帖数: 8211
29
来自主题: Programming版 - 重载 ^ 操作符编译出错
you only need to build a new compiler.
r*********r
发帖数: 3195
30
来自主题: Programming版 - 关于 expression template 这种叫法
对 expression "template" 这种叫法一直有疑问, 不知道我想得对不对.
它的要义在于, 用操作符重载来改变语义,
把 eager evaluation 变成 lazy evaluation.
所以关键是 operator overloading.
那么为什么要叫 expression template 呢?
实际上 template 在这里似乎可有可无,
至少在对 vector/matrix 之类的简单应用.
t****t
发帖数: 6806
31
你这个太不对了, 差十万八千里
neg对应C的操作符是~,不是!
剩下的自己想吧
l**t
发帖数: 64
32
来自主题: Programming版 - 关于placement new
用户可以自定义(重载)new,delete操作符
void* operator new(size_t); //当new T或operator new(sizeof(T))+T的构造函数
时调用该函数
void* operator new[](size_t); //当new T[n]或operator new[](n*sizeof(T))+每个
T的构造函数 时调用该函数
R*******y
发帖数: 19
33
我有一个Event类型的结构体,已经重载了比较操作符并且运行正确。为了设计上的需
要,我要写一个priority_queue,保存Event类的指针(注意不是Event类本身)。声明
如下:
priority_queue, CompEventByPtr> m_EventQue;
CompEventByPtr实现如下:
bool CompEventByPtr(Event* pEvent1, Event* pEvent2)
{
return (*pEvent1 < *pEvent2);
}
系统编译报错:
error C2923: 'std::priority_queue' : 'CompEventByPtr' is not a valid
template type argument for parameter '_Pr'
我不明白为什么这不是合法的比较函数。我将实现改为:
bool CompEventByPtr(Event* pEvent1, Event* pEvent2)
{
return (pEvent1->time >
t**g
发帖数: 1164
34
来自主题: Programming版 - 请问以下代码有什么错误?
一道题目
要求从下面代码找出5个错误
我只找出来3个
所以请教一下大家
我找出来的3个:
1。class定义最后没有加";"分号
2。定义"="操作符的时候没有事先检查是否是self assignment
3. 定义init()函数里头,
data=new char[strlen(s)]这一句应该改成
data=new char[strlen(s)+1]? (因为c字符串好像默认尾端都有个额外的'\0')
class String
{
public:
String() { data = NULL; }
String( char * s)
{
init(s);
}
~String() { delete data; }
String ( String S )
{
init (S.data);
}

String& operator = ( const String & S
c*****o
发帖数: 178
35
那就是说,因为derived class 中的 +=的rhs肯定是和base class中的rhs类型不同,
所以不能是virtual function?
X****r
发帖数: 3557
36
1.没有规定derived class 中的 +=的rhs肯定是和base class中的rhs类型不同,
你要愿意写得一样也没有错误,取决于你要达到什么目的了。
2.当然可以是virtual function。你的例子里不就是virtual function吗,
只不过你写了两个不同的virtual function而已。
你可以参考一下double dispatch。
c*****o
发帖数: 178
37
恩,看了一下double dispatch,明白该怎么做了,非常感谢!大牛~
d****p
发帖数: 685
38
来自主题: Programming版 - 一个C的void指针的问题
多说一句个人体会。
宏可以主要用来省敲字:我很爱用##操作符。不过要干净还是多用模板吧。如果考虑函
数指针,不如考虑函数对象体更C++一些。
g*********s
发帖数: 1782
39
来自主题: Programming版 - 问个函数指针指向操作符的问题
下面这段没问题:
bool op_less(int x, int y) {
return (x < y);
}
bool op_greater(int x, int y) {
return (x > y);
}
bool (*compare_op)(int, int) = is_min ? &op_less : &op_greater;
但是下面这段总是编译失败:
bool (*compare_op)(int, int) = is_min ? &(operator<) : &(operator>);
error: ‘operator<’ not defined
error: ‘operator>’ not defined
这样也不行:
bool (*compare_op)(int, int) = is_min ? &(operator<(int, int)) : &(operator>(int, int));
basic.h:83: error: expected primary-expression before ‘int’
basic.h:83: error: ex... 阅读全帖
p***o
发帖数: 1252
40
来自主题: Programming版 - 问个函数指针指向操作符的问题
No such thing, just use op_less and op_greater as you defined.
X****r
发帖数: 3557
41
来自主题: Programming版 - 问个函数指针指向操作符的问题
The built-in < operator is not a function nor a function template.
It is an operator. You cannot take address of an operator.
You can declare your own function or function template to overload
the built-in < operator, under the `name' "operation <", in which
case you can take address of this function (or instantiated template)
k******r
发帖数: 2300
42
来自主题: Programming版 - 问个函数指针指向操作符的问题
You can do like this,
compare_op = is_min ? op_less : op_greater;
Let me know if you have any issue.
k******r
发帖数: 2300
43
来自主题: Programming版 - 问个函数指针指向操作符的问题
No, that is not an operator, it is a function.
d****p
发帖数: 685
44
来自主题: Programming版 - 问个函数指针指向操作符的问题
Someone asked me the difference between operator and function. I don't know
how to answer properly. Anyone with a clue?
X****r
发帖数: 3557
45
来自主题: Programming版 - 问个函数指针指向操作符的问题
Where is the function declaration then?
X****r
发帖数: 3557
46
来自主题: Programming版 - 问个函数指针指向操作符的问题
Err.. they are totally different things. Operators are special
non-alphabetic symbols with their predefined syntax and semantics,
and take one or more operand to form expressions. Functions are
units of code that has its own declaration, body, scope, etc.,
and can be called using the function call operator ().
The only connection between them is that for overloadable operators,
you can define functions with the name "operator @" where @ is the
operator symbol for your own class or enum to overlo... 阅读全帖
d****p
发帖数: 685
47
来自主题: Programming版 - 问个函数指针指向操作符的问题
Thanks - your summary is really good.
I especially like your highlighting function call operator() - that clearly
shows function is an operand of (the) operator.
operator and operand are of course different.
k******r
发帖数: 2300
48
来自主题: Programming版 - 问个函数指针指向操作符的问题
Most likely, the op just posted the part of his code. The declaration of
functions are put in another header file. BTW, if the functions are used
only in one file, then the declaration of functions are not even necessary.
k******r
发帖数: 2300
49
来自主题: Programming版 - 问个函数指针指向操作符的问题
Operators are special non-alphabetic symbols? That is not necessarily true.
What about the operator sizeof?
X****r
发帖数: 3557
50
来自主题: Programming版 - 问个函数指针指向操作符的问题
Yes, that's not entirely correct. Special non-alphabetic symbols
or keywords, that is.

true.
首页 上页 1 2 3 下页 末页 (共3页)