我正在尝试使用boost :: normal_distribution来生成具有均值0和sigma 1的正态分布.
以下代码不起作用,因为某些值超过或超过-1和1(并且不应该).有人能指出我做错了什么吗?
#include <boost/random.hpp>
#include <boost/random/normal_distribution.hpp>
int main()
{
boost::mt19937 rng; // I don't seed it on purpouse (it's not relevant)
boost::normal_distribution<> nd(0.0, 1.0);
boost::variate_generator<boost::mt19937&,
boost::normal_distribution<> > var_nor(rng, nd);
int i = 0; for (; i < 10; ++i)
{
double d = var_nor();
std::cout << d << std::endl;
}
}
Run Code Online (Sandbox Code Playgroud)
我的机器上的结果是:
0.213436
-0.49558
1.57538
-1.0592
1.83927
1.88577
0.604675
-0.365983
-0.578264
-0.634376
Run Code Online (Sandbox Code Playgroud)
如您所见,所有值都不在-1和1之间.
谢谢大家!
编辑:当你有最后期限并且在做练习之前避免研究理论时会发生这种情况.
在使用UnitTest ++对单元测试进行编码时,我正面临着麻烦.我想知道如何以干净的方式(或者任何方式......)访问私有成员类字段
到目前为止,我有一个解决方案,使用派生自被测试类的类夹具访问受保护的成员.以下代码显示了这个想法:
struct MyFixture : ClassUnderTest { };
TEST_FIXTURE(MyFixture, OneTest)
{
do_something();
CHECK(protected_field == true);
}
Run Code Online (Sandbox Code Playgroud)
尽管如此,我认为这不是很干净,因为在某些配置中可能会出现与继承有关的问题,无论如何,只有受保护的成员才能被访问和测试.
我试图将测试类声明为朋友,但由于这些是由UnitTest ++以某种特殊方式创建的,我还没有设法做到这一点.
有没有人知道如何让测试类成为被测试类的朋友?
是否有另一种方式以更容易或不同的方式解决这个问题?
谢谢大家.
我正在尝试使用64位进程读取Excel电子表格.因此,我使用64位版本的Micorosft Access数据库引擎2010.
以下代码
var cs = @"Provider=Microsoft.ACE.OLEDB.12.0;"
+ @"Data Source=C:\test.xls;"
+ @"Extended Properties=""Excel 14.0;""");
con = new OleDbConnection(cs);
con.Open();
Run Code Online (Sandbox Code Playgroud)
抛出异常:
找不到可安装的ISAM
使用谷歌我发现了很多关于这个例外的问题.但他们提到JET并且似乎不适用于我的问题.
有什么建议?
我有一个std :: list <>容器和这些线程:
一个写作者线程无限地添加元素.
一个读取器/写入器线程,可在可用时读取和删除元素.
几个读取器线程访问容器的SIZE(通过使用size()方法)
有一个普通的互斥锁可以保护前两个线程对列表的访问.我的问题是,尺寸读取器线程是否也需要获取此互斥锁?我应该使用读/写互斥?
我在使用Visual C++ 6的Windows环境中.
更新:看起来答案尚不清楚.总结主要疑点:我是否仍然需要保护SIZE读取器线程,即使它们只调用size()(返回一个简单的变量),考虑到我不需要确切的值(即我可以假设一个+/- 1变化)?竞争条件如何使我的size()调用返回一个无效值(即一个完全无关的值)?
答:通常,必须保护读卡器线程以避免竞争条件.不过,在我看来,上述更新中提出的一些问题尚未得到解答.
提前致谢!
谢谢大家的答案!
想象一下,我有一个CDialog,可以在用户单击按钮时动态创建控件.它可能是这样的:
// We don't know which is the first id for the new buttons until runtime (!)
MyDialog::MyDialog(/*whatever parameters needed*/, first_id)
: next_id_(first_id)
{ /*...*/ }
BOOL MyDialog::OnSomeButtonClicked()
{
CButton* new_button = new CButton;
new_button->Create("Caption", WS_CHILD | WS_VISIBLE, this->new_button_rect_,
this, this->next_id_++);
}
Run Code Online (Sandbox Code Playgroud)
然后我的问题是:我怎么能处理来自这个按钮的消息?是否可以使用MFC消息映射工具?
该解决方案应该在vs6和vs2005中都有效.
谢谢!
我在解析HTTPS rss feed的feedparser中遇到了这个SSL问题,我真的不知道该怎么办,因为在feedparser上找不到关于这个错误的任何文档
>>> import feedparser
>>> feed = feedparser.parse(rss)
>>> feed
{'feed': {}, 'bozo': 1, 'bozo_exception': URLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)'),), 'entries': []}
>>> feed["items"]
[]
>>>
Run Code Online (Sandbox Code Playgroud) 关于申请
关于崩溃的事实
Exception code: c0000005 ACCESS_VIOLATION Address : 006a85b9 Access Type : write Access Address : 2e020fff Fault address: 006a85b9 01:002a75b9 C:\MyDir\MyApplication.exe ChildEBP RetAddr Args to Child WARNING: Stack unwind information not available. Following frames may be wrong. 030af6c8 7c9206eb 77bfc3c9 01a80000 00224bc3 MyApplication+0x2a85b9 030af960 7c91e9c0 7c92901b 00000ab4 00000000 ntdll!RtlAllocateHeap+0xeac (FPO: [Non-Fpo]) 030af98c 7c9205c8 00000001 00000000 …
我正在开始学习和有效使用带有西班牙语键盘的vim 的旅程。
我遇到了第一个重要的问题:
如果你习惯了非美式键盘映射,那么每次编程时重新映射vim移动键或切换布局,哪个更好?
到目前为止,我认为重新映射 vim 移动键以适应我通常的手指位置是要走的路。我想知道其他西班牙人在做什么。
一般来说,了解是否还有其他对西班牙 vim 用户很重要的警告或技巧会很有用。
c++ ×4
visual-c++ ×3
boost ×1
concurrency ×1
crash ×1
excel ×1
feedparser ×1
keyboard ×1
mfc ×1
ms-jet-ace ×1
oledb ×1
python ×1
python-2.7 ×1
rss ×1
ssl ×1
statistics ×1
stl ×1
unit-testing ×1
unittest++ ×1
vim ×1
windbg ×1
windows ×1