小编Ami*_*mar的帖子

运算符中的'+'和'='之间的空格+ =

考虑以下代码:

#include <iostream>

int main() 
{
   int iTemp = 0;

   iTemp += 1;     // Valid

   iTemp + = 1;   // This gives an error ( note the space between '+' and '=')

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

解析器是否应该自动消耗此空间并检查是否存在'=',因为'+ ='也是一个有效的令牌,而不是抛出错误?

同样地,我在执行<iostream>时遇到错误

有人可以解释一下.

c c++

3
推荐指数
2
解决办法
743
查看次数

没有名字的班级

我在C++标准文档中读到了关于类的内容:

类是一种类型.它的名称在其范围内成为类名(9.1).

class-name: identifier template-id
Run Code Online (Sandbox Code Playgroud)

我在C++标准中找到了这个标识符的语法:

 2.10 Identifiers
 identifier: nondigit
 identifier nondigit
 identifier digit

 nondigit: one of universal-character-name 
 _ a b c d e f g h i j k l m n o p q r s t u  v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 
 digit: one of 0 1 2 3 4 5 …
Run Code Online (Sandbox Code Playgroud)

c++ grammar class identifier

2
推荐指数
1
解决办法
3433
查看次数

构建C++ 11标准的Qt项目

我正在尝试用C++ 11标准构建我的Qt项目.我在Qt Creator的构建步骤,附加参数选项中添加了这个标志:

-std=c++11
Run Code Online (Sandbox Code Playgroud)

但是我在构建时遇到了这个错误:

Unknown option -std=c++11
Run Code Online (Sandbox Code Playgroud)

g ++版本信息: g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3

有任何想法吗 ?

qt g++ build qt-creator c++11

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

使用C++ 11 Range for循环更改字符串中的字符

我读了C++ Primer:

如果我们想要更改字符串中字符的值,我们必须将循环变量定义为引用类型(第2.3.1节,第50页).请记住,引用只是给定对象的另一个名称.当我们使用引用作为控制变量时,该变量依次绑定到序列中的每个元素.使用引用,我们可以更改引用绑定的字符.

他们还提供了这段代码:

string s("Hello World!!!");
// convert s to uppercase
for (auto &c : s)   // for every char in s (note: c is a reference)
    c = toupper(c); // c is a reference, so the assignment changes the char
in s
cout << s << endl;
Run Code Online (Sandbox Code Playgroud)

这段代码的输出是HELLO WORLD !!!

我也读过:

无法重新绑定引用以引用其他对象.由于无法重新绑定引用,因此必须初始化引用.

问题:每次将引用变量c绑定到字符串s的下一个字符时,此代码是否会导致重新绑定?

for (auto &c : s)   
    c = toupper(c); 
Run Code Online (Sandbox Code Playgroud)

c++ for-loop reference c++11

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

加入列表和拆分字符串

我以前有一些C++的经验,刚刚开始使用Python.我从Dive到Python读了这篇文章:

在此输入图像描述

根据我的经验,一般的想法是,如果你想对对象'O'执行操作,你可以在该对象上调用一个方法来执行它.

例如.如果我有一个列表对象,并且我想得到所有元素的总和,我会做类似的事情:

listObject.getSumOfAllElements()
Run Code Online (Sandbox Code Playgroud)

但是,上面的书中摘录的内容对我来说有点奇怪.对我来说,这会更有意义:

return (["%s=%s" % (k, v) for k, v in params.items()]).join(";")
Run Code Online (Sandbox Code Playgroud)

即将列表的所有元素作为字符串连接,并在此处使用此参数';'作为分隔符.

这是一个设计差异还是只是语法上与我的想法有点不同?


编辑:

为了完成,这本书稍后说:

在此输入图像描述

python oop language-design

2
推荐指数
1
解决办法
354
查看次数

qml函数的默认参数给出了语法错误

此代码在浏览器托管的JavaScript环境中正常工作:

    function foo(a=true)
    {
        console.log(a)
    }
Run Code Online (Sandbox Code Playgroud)

但是在qml中做同样的事情就是给予syntax error.

我可能做错了什么?

javascript qt qml

2
推荐指数
1
解决办法
1519
查看次数

使私有 C++ 函数对 Qml 可见

我一直按照Qt 文档中给出的方法使我的 C++ 函数可以从 Qml 调用。

这需要满足以下条件之一:

  1. 制作 C++ 函数publicand Q_INVOKABLE or
  2. 使 C++ 函数成为public slot

这有时与我的课堂设计不同步。例如,根据我的类设计,我想要从 Qml 调用的函数是私有的。

Q1. 我可以使函数对 Qml 可见并仍保持其私有吗?

Q2。期待这种行为是我的设计缺陷吗?

qt public private-members qml

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

T(n)> = T(n-1)总是正确吗?

我看到了一个证明找到排序算法复杂性的证明,其中说明了这样的事情:

Total time complexity for the algorithm = T(n-1) + T(n-2)

Thus, Total time complexity for the algorithm <= 2 * T( n-2 )
Run Code Online (Sandbox Code Playgroud)

并进一步证明了某种关系.

问:我能安全地假设T(n) >= T(n-1)吗?当我已经在尝试证明某些算法的复杂性时,我怎么能提前做出这个声明呢?

algorithm big-o time-complexity

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

带有'd'后缀的大尺寸dll

我正在尝试为Windows平台制作​​独立的应用程序.我搜索了我的应用程序所依赖的dll,将它们放在exe上,并且工作正常.

最近,在我的一个应用程序中,我看到所询问的依赖关系有点不同:

  1. Qt5Guid.dll而不是Qt5Gui.dll
  2. Qt5Declaratived.dll而不是Qt5Declarative.dll

和一些更类似的..

常见的是,所有这些新的依赖项都是相同的旧依赖项,并附加了一个d.当我使用带有'd'的新的时,我的应用程序运行正常.问题是所有这些带有'd'的dll的大小几乎都比正常的db大100Mb.

例如:

Qt5Guid.dll~119 Mb

Qt5Gui.dll~4 Mb

这使我的包大小变大,可以作为一个应用程序.

Q1.普通dll和带有d后缀的对应物之间有什么区别.?

Q2.我可以做些什么来使我的应用程序明确依赖于正常的应用程序,因此我的应用程序的大小更小?

dll qt qml qt5

0
推荐指数
1
解决办法
323
查看次数

毛皮质地在兔子上显得粗糙

我编写了这段代码,将纹理应用于以ply格式提供的bunny模型.兔子用纹理绘制,但不像看起来像毛皮,纹理看起来像粗点.

void GLRenderer::paintGL()
{
    // Set light
    GLfloat light_position[] = { lightPositionX, lightPositionY, lightPositionZ, 0.0 };
    glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    // Enabling texture
    glEnable(GL_TEXTURE_2D);
    glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);

    bindTexture(QImage("fur4.bmp"));

    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);

    glEnable(GL_NORMALIZE);
    glLoadIdentity();

    glBegin(GL_TRIANGLES);

        for( int i = 0 ; i < objPLYParser.g_vpX.size() ; i+=3 )
        {
                float vector1[3], vector2[3], vCross[3], normalizationValue;
                vector1[0] = objPLYParser.g_vpX[i] - objPLYParser.g_vpX[i+1];
                vector1[1] = objPLYParser.g_vpY[i] - objPLYParser.g_vpY[i+1];
                vector1[2] = objPLYParser.g_vpZ[i] - objPLYParser.g_vpZ[i+1];

                vector2[0] = objPLYParser.g_vpX[i] …
Run Code Online (Sandbox Code Playgroud)

opengl 3d graphics qt texture-mapping

0
推荐指数
1
解决办法
357
查看次数