小编spe*_*wah的帖子

C++构造函数名后的冒号是做什么的?

冒号运算符(":")在这个构造函数中做了什么?它等同于MyClass(m_classID = -1, m_userdata = 0);

class MyClass {
public:

    MyClass() : m_classID(-1), m_userdata(0) { 
    }

    int m_classID;
    void *m_userdata;
};
Run Code Online (Sandbox Code Playgroud)

c++ constructor initialization-list ctor-initializer

85
推荐指数
2
解决办法
5万
查看次数

smtplib和gmail - python脚本问题

这是我的脚本:

#!/usr/bin/python

import smtplib
msg = 'Hello world.'

server = smtplib.SMTP('smtp.gmail.com',587) #port 465 or 587
server.ehlo()
server.starttls()
server.ehlo()
server.login('myname@gmail.com','mypass')
server.sendmail('myname@gmail.com','somename@somewhere.com',msg)
server.close()
Run Code Online (Sandbox Code Playgroud)

我只是想从我的Gmail帐户发送电子邮件.由于gmail的要求,该脚本使用starttls.我在两个web主机上尝试了这个,1and1和webfaction.1and1给我一个'连接被拒绝'错误,webfaction报告没有错误,但只是不发送电子邮件.我看不出脚本有什么问题,所以我认为它可能与网络主机有关.任何想法和意见将不胜感激.

编辑:我打开了调试模式.从输出,它看起来像是成功发送了消息...我只是从来没有收到它.

send: 'ehlo web65.webfaction.com\r\n'
reply: '250-mx.google.com at your service, [174.133.21.84]\r\n'
reply: '250-SIZE 35651584\r\n'
reply: '250-8BITMIME\r\n'
reply: '250-STARTTLS\r\n'
reply: '250-ENHANCEDSTATUSCODES\r\n'
reply: '250 PIPELINING\r\n'
reply: retcode (250); Msg: mx.google.com at your service, [174.133.21.84]
SIZE 35651584
8BITMIME
STARTTLS
ENHANCEDSTATUSCODES
PIPELINING
send: 'STARTTLS\r\n'
reply: '220 2.0.0 Ready to start TLS\r\n'
reply: retcode (220); Msg: 2.0.0 Ready to start TLS
send: 'ehlo web65.webfaction.com\r\n' …
Run Code Online (Sandbox Code Playgroud)

python gmail smtp smtplib

25
推荐指数
4
解决办法
5万
查看次数

如何在python for循环中操作实际对象而不是副本?

假设我有一个清单

a = [1,2,3]
Run Code Online (Sandbox Code Playgroud)

我想增加该列表中的每个项目.我想做一些语法上容易的事情

for item in a:
    item += 1
Run Code Online (Sandbox Code Playgroud)

但是在那个示例中,python只使用了值item,而不是它的实际引用,所以当我完成该循环时a仍然返回[1,2,3]而不是[2,3,4].我知道我可以做点什么

a = map(lambda x:x+1, a)
Run Code Online (Sandbox Code Playgroud)

但这并不适合我当前的代码,我不想重写它: - \

python

7
推荐指数
3
解决办法
2966
查看次数

我可以将结构视为数组吗?

我有一个用于保存4D向量的结构

struct {
    float x;
    float y;
    float z;
    float w;
} vector4f
Run Code Online (Sandbox Code Playgroud)

我正在使用一个库,它有一些函数可以在向量上运行,但是以浮点指针作为参数.

打电话是否合法doSomethingWithVectors( (float *) &myVector)

c pointers vector

7
推荐指数
3
解决办法
3939
查看次数

如何从QPushButton中删除边框?

我在QTreeView的行中有一些QPushButtons,它们周围出现了这些黑色边框,我似乎无法修改.目前我可以使用以下代码将按钮变灰:

for (int i = 0; i < QPalette::NColorRoles; i++){
    QPalette::ColorRole thisRole = static_cast<QPalette::ColorRole>(i);
    QColor newColor = commitPalette.color(QPalette::Disabled,thisRole);
    int grayColor = qGray(newColor.rgb());
    newColor.setRgb(grayColor,grayColor,grayColor,50);
    commitPalette.setColor(QPalette::Disabled, thisRole, newColor);
}
Run Code Online (Sandbox Code Playgroud)

但它对边界没有任何作用.我更喜欢避免使用样式表,因为我喜欢QPalette的构造函数提供的自动颜色生成

边框示例

qt

6
推荐指数
2
解决办法
2万
查看次数

为什么在定义指针时我们使用"type*var"而不是"type&var"?

我对C++比较陌生(大约一年的经验,开关).我很好奇导致决定type * name作为定义指针的语法的原因.在我看来,该语法应该是type & name作为&符号用于其他地方的代码来引用变量的内存地址.所以,要使用传统的int指针示例:

int a = 1;
int * b = &a;
Run Code Online (Sandbox Code Playgroud)

会成为

int a = 1;
int & b = &a
Run Code Online (Sandbox Code Playgroud)

我确定有一些原因,我只是没有看到,我很想听到C++老手的一些意见.

谢谢,-S

c++ syntax

5
推荐指数
1
解决办法
679
查看次数

如何轻松解决分配优化任务

我正在编写一个脚本,它接收元素,companies并将它们与元素配对people.目标是优化配对,使得所有配对值的总和最大化(每个配对的值被预先计算并存储在字典中ctrPairs).

他们都以1:1的比例配对,每个公司只有一个人,每个人只属于一家公司,公司数量等于人数.我使用自上而下的方法和memoization table(memDict)来避免重新计算已经解决的区域.

我相信我可以大大提高这里发生的速度,但我不确定如何.我担心的区域会被标记#slow?,任何建议都会受到赞赏(该脚本适用于列表n <15的输入,但是对于n> ~15,它会变得非常慢)

def getMaxCTR(companies, people):
    if(memDict.has_key((companies,people))):
        return memDict[(companies,people)] #here's where we return the memoized version if it exists
    if(not len(companies) or not len(people)):
        return 0

    maxCTR = None
    remainingCompanies = companies[1:len(companies)] #slow?

    for p in people:
        remainingPeople = list(people) #slow?
        remainingPeople.remove(p) #slow?
        ctr = ctrPairs[(companies[0],p)] + getMaxCTR(remainingCompanies,tuple(remainingPeople)) #recurse
        if(ctr > maxCTR):
            maxCTR = ctr
    memDict[(companies,people)] = maxCTR
    return maxCTR
Run Code Online (Sandbox Code Playgroud)

python algorithm optimization dynamic-programming

3
推荐指数
1
解决办法
1154
查看次数

如何在我的UIView和我的EAGLView之间进行混合?

我在EAGLView图层上有一个opengl场景渲染,在UIView(它是EAGLView的兄弟,位于它上面)上呈现了一些其他元素(圆圈等).是否可以在两层之间混合颜色?我想做一些差异混合,以获得EAGLView颜色的反转效果.

我一直在玩CGBlendMode,但它似乎只影响我在当前视图中绘制的内容.我认为这与CGContext有关,但我对细节有点模糊,我可以强制UIView和EAGLView使用相同的CGContext,以便它们之间的混合有效吗?

帮助,更正,澄清都很受欢迎.在此先感谢,-S

opengl iphone eaglview uikit uiview

3
推荐指数
1
解决办法
2069
查看次数

帮我评估这个演员

我在PowerVR网格绘图代码中发现了这一点,我真的不知道如何阅读它.

&((unsigned short*)0)[3 * mesh.sBoneBatches.pnBatchOffset[batchNum]]
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?这是对无效转换的引用作为无符号短指针然后偏移(3*mesh(etc ...)+ batchNum)?它打破了我的大脑.

它是在glDrawElements调用的上下文中找到的:

glDrawElements(GL_TRIANGLES, i32Tris * 3, GL_UNSIGNED_SHORT, 
               &((unsigned short*)0)[3 * mesh.sBoneBatches.pnBatchOffset[batchNum]]);
Run Code Online (Sandbox Code Playgroud)

c++ opengl

3
推荐指数
1
解决办法
247
查看次数

有没有办法检索处理UITouch的每个响应者?

我正试图在我的游戏中调试一些touchesBegan/Moved/Ended相关减速; 我认为我的一些触摸响应器没有正确卸载,因此当游戏运行时,越来越多的它们堆叠起来,触摸得越来越不敏感,因为它们必须通过越来越大的响应链.

有没有办法查看/检索UITouch在链中移动时所采用的路径?或者只是某种方式来检索所有活动响应者的列表?

谢谢,-S

iphone debugging uikit uitouch

3
推荐指数
1
解决办法
613
查看次数