我正在尝试创建一个包含textPanel类的SimpleWindow类的gui:
class textPanel{
private:
std::string text_m;
public:
textPanel(std::string str):text_m(str){}
~textPanel();
};
class SimpleWindow{
public:
SimpleWindow();
~SimpleWindow();
textPanel text_panel_m;
};
SimpleWindow::SimpleWindow():
text_panel_m(std::string temp("default value"))
{
}
Run Code Online (Sandbox Code Playgroud)
我希望能够使用const char*初始化text_panel_m,它将转换为std :: string,而不需要创建另一个带有const char*的构造函数.我应该用const char*作为参数创建另一个构造函数吗?如果我这样做有没有办法减少使用c ++ 0x的冗余构造函数的数量?
使用上面的方法,我在初始化text_panel_m成员变量时遇到了困难.g ++给了我以下错误:
simpleWindow.cpp:49: error: expected primary-expression before ‘temp’
simpleWindow.cpp: In member function ‘bool SimpleWindow::drawText(std::string)’:
Run Code Online (Sandbox Code Playgroud)
如何在不使用默认构造函数的情况下初始化text_panel_m成员变量?
现在我正在研究一个在代码的许多部分中广泛使用64位无符号整数的项目.到目前为止,我们只使用gcc 4.6编译,但我们现在将一些代码移植到Windows.这些无符号整数是64位宽是至关重要的.有人建议我们可以使用long long但是如果long long大于64位并不好,我们实际上希望保证它会是64位并写一些类似static_assert(sizeof(long long) == 8)代码的东西.
定义类似uint64的最佳方法是什么,它将在gcc和msvc之间进行编译,而不需要在任何地方使用不同的代码语法?
我有一个枚举Eg.
enum {
APPLE,
MANGO,
BANANA
}
Run Code Online (Sandbox Code Playgroud)
和相应的字符串数组
char fruits[] =
{
"apple",
"mango",
"banana"
}
Run Code Online (Sandbox Code Playgroud)
我需要检索字符串的索引,因为我有字符串.因此,如果字符串是苹果,我需要得到0,依此类推.[ Enum另外,可能有助于解决方案]
是否有一种优雅的方式,保存[apple,0],[banana,1]简短,我可以用作宏.我不需要像哈希表那样冗长的东西.可以Enum协助映射吗?
我正在尝试在 Visual Studio C++ 2010 中进行高斯分布。我希望每次运行时都有不同的结果。但是当我运行此代码三次时,结果是相同的:
#include <iostream>
#include <random>
int roundnew(double d)
{
return floor(d + 0.5);
}
int main()
{
std::default_random_engine generator;
std::normal_distribution<double> distribution(10,1);
for (int n = 0; n < 12; ++n) {
printf("%d\n",roundnew(distribution(generator)));
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
结果是
10
9
11
9
10
11
10
9
10
10
12
10
Run Code Online (Sandbox Code Playgroud)
我的代码有什么问题?我的代码中需要种子值,对吧?运行代码即可看到结果
目前在我们正在开发的一个大型c ++项目中,我们有一堆新的循环样式,如下所示:
for (auto& value : values)
Run Code Online (Sandbox Code Playgroud)
到目前为止,我们一直在使用gcc 4.6进行编译.最近一些代码库被移植到Windows,一些开发人员希望在msvc ++ 10中编译,但似乎还没有完全支持新的for循环语法.
非常希望不必重写所有出现此语法的地方.
解决这个问题的最佳方法是什么?
更新:看起来MSVC11中已解决此问题.
所以我希望我不是在问一些愚蠢的事情.
我希望我的程序在点击一个按钮时暂停从2000到5999的随机数量的ms,所以这里是行:
void ExpNatDlg::OnBnClickedBack()
{
int delayRand;
delayRand = (int)rand() % 6000 + 2000;
Sleep(delayRand);
}
Run Code Online (Sandbox Code Playgroud)
为了检查我得到的延迟,我将它们打印在一个文件上,我不知道为什么,我有时会得到超过7000毫秒的延迟...
我不知道我错过了什么!谢谢你的帮助!
Python 具有创建命名空间包的能力。如何获取命名空间下已安装软件包的列表?
即类似:
import namespace_package
dir(namespace_pageage)
Run Code Online (Sandbox Code Playgroud) 有没有初始化的方法std::vector的std::pair<int,int>在构造函数初始化列表中?我有一个std::vector<std::pair<int,int> >,我想初始化一定数量的对(0, 0).例如,我可能想要为(0, 0)一个类中的成员初始化3对.我该怎么做呢?
目前我有一个列表,其中包含一些非重复正整数 a = [1,2,6,15,19]
什么是最惯用的方法来创建一个返回一个新列表的函数,该列表是在输出%x中a没有任何重复元素的情况下获取每个元素的模数的结果?
具体来说,我希望没有重复的元素f(a,x)返回[1%x,2%x,6%x,15%x,19%x].
例如f([1,2,6,15,19],4)会返回[1,2,3]
我来自Java背景,刚开始使用Python.大多数事情都很容易上手,但我很难理解我刚刚发现的一种叫做列表理解的语言.这是什么在Python列表理解?这与Java中的语言结构相比如何?问题是它无处不在,几乎我在这里和那里找到的所有例子都使用它.
对于以下示例,请允许我了解其工作原理.
[x**2 for x in range(10)]
Run Code Online (Sandbox Code Playgroud)
然后就是这个.
[j + k for j in 'abc' for k in 'def']
Run Code Online (Sandbox Code Playgroud)
除此之外,我还在Stackoverflow上看到过这样的事情.
(x for x in (0,1,2,3,4))
Run Code Online (Sandbox Code Playgroud)
还有这样的事情.
total = sum(x+y for x in (0,1,2,3) for y in (0,1,2,3) if x < y)
Run Code Online (Sandbox Code Playgroud)
这开始变得混乱,你能帮我吗?