我使用Mac Mini作为构建代理,我需要升级标准库.我在MacPorts上找不到libc或libstdc ++.
我正在学习如何使用iterator_facade来隐藏迭代器实现的一些样板.在我当前的用例中,我正在包装另一个容器(实际上来自.NET代码)所以我需要begin(),end(),typedef等.至少我希望结果类型与BOOST_FOREACH一起使用.是否有一个方便的东西来提升简化?
我试图通过UI Automation自动测试我的应用程序(主要TestStack.White用于提供友好的界面;它System.Windows.Automation用作后端).我有一个约200行的表,我需要测试它的值(实际上我只想测试第一行和最后几行).我发现使用COM-interop UIAutomationCore本身,我可以在几分之一秒内枚举行,但只有当我不使用White或System.Windows.Automation.一旦System.Windows.Automation初始化,未来的UI自动化行动枚举行是缓慢的:
First COM run: it took 0.04 seconds to get 102 rows!
First System.Windows.Automation run: it took 7.18 seconds to get 102 rows!
Second COM run: it took 7.87 seconds to get 102 rows!
Run Code Online (Sandbox Code Playgroud)
我创建了一个简单的WinForms测试应用程序(TableTest.exe以验证它是否System.Windows.Automation与我的应用程序无关:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var form = new Form() { Text = "TableTest", WindowState = FormWindowState.Maximized };
var dgv = new DataGridView() { Name = "DGV", Dock = DockStyle.Fill, …Run Code Online (Sandbox Code Playgroud) c# white-framework ui-automation winforms microsoft-ui-automation
我们有一个C++程序,根据用户配置的方式,可能是CPU绑定或IO绑定.为了与程序配置松散耦合,我希望我的线程池能够在程序受益于更多线程(即CPU绑定)时自动实现.如果它意识到它是I/O限制并减少了工作人员数量会很好,但这只会是一个奖励(即我会对自动增长而没有自动收缩的东西感到满意).
我们使用Boost,所以如果有什么东西可以帮助我们使用它.我意识到任何解决方案可能都是特定于平台的,所以我们主要对Windows和Linux感兴趣,对OS X或任何其他*nix有兴趣.
我尝试了(通过roxygen2)@import data.table并仅导入了我使用的函数(@importFrom data.table data.table rbindlist setkey setDT := .SD。两种方式都会收到有关.“函数”的警告,我认为是由于这种用法:
dt[x, .(a, b, c)]。我找不到任何.不会导致导入的方法一个错误。
而作为一个后续问题,有没有隐藏的一个推荐的方式no visible binding for global variable进行a,b和c?关于后一个NOTE还有很多其他问题,但我还没有一个令人满意的答案。globalVariable并将列名设置为函数中其他位置的占位符值是很丑陋的。我应该切换到其他指定列的方法来解决这两个问题吗?
我想做这样的事情:
public override int CompareTo (Foo rhs)
{
return Bar.CompareTo(rhs.Bar) ??
Baz.CompareTo(rhs.Baz) ??
Fuz.CompareTo(rhs.Fuz) ?? 0;
}
Run Code Online (Sandbox Code Playgroud)
这不起作用; 是否有一些最小的解决方法使它工作?基本上我希望0链到非零(或链的末尾).
我有一个二分图,我正在寻找最有效的迭代方法将其划分为连接组件.我的递归版本已经开始在大型数据集上溢出堆栈.我愿意从任何语言/伪代码移植,但为了完整性,我将使用C#进行编码.
我现有的代码专门用于我的数据类型.一个分区是蛋白质,另一个是光谱.Map和Set是C++ stdlib workalikes.
void recursivelyAssignProteinToCluster (long proteinId,
long clusterId,
Set<long> spectrumSet,
Map<long, Set<long>> spectrumSetByProteinId,
Map<long, Set<long>> proteinSetBySpectrumId,
Map<long, long> clusterByProteinId)
{
// try to assign the protein to the current cluster
var insertResult = clusterByProteinId.Insert(proteinId, clusterId);
if (!insertResult.WasInserted)
return;
// recursively add all "cousin" proteins to the current cluster
foreach (long spectrumId in spectrumSet)
foreach (var cousinProteinId in proteinSetBySpectrumId[spectrumId])
{
if (proteinId != cousinProteinId)
{
Set<long> cousinSpectrumSet = spectrumSetByProteinId[cousinProteinId];
recursivelyAssignProteinToCluster(cousinProteinId,
clusterId,
cousinSpectrumSet,
spectrumSetByProteinId,
proteinSetBySpectrumId,
clusterByProteinId);
}
}
}
Map<long, …Run Code Online (Sandbox Code Playgroud) 这看起来很简单,但无论我使用哪种*应用功能,正确的答案都不包括在内.我没有尝试任何其他包,因为它似乎*申请应该绝对能够做到这一点.
我的数据:
data = list(foo=c("first", "m", "last"), bar=c("first", "m", "last"))
Run Code Online (Sandbox Code Playgroud)
我认为应该有效:
lapply(data, FUN=paste)
Run Code Online (Sandbox Code Playgroud)
但它给了我:
$foo
[1] "first" "m" "last"
$bar
[1] "first" "m" "last"
Run Code Online (Sandbox Code Playgroud)
我想要:
$foo
[1] "first m last"
$bar
[1] "first m last"
Run Code Online (Sandbox Code Playgroud)
当然,我已经尝试了很多其他的东西:
> paste(data)
[1] "c(\"first\", \"m\", \"last\")" "c(\"first\", \"m\", \"last\")"
> paste(data, collapse = "")
[1] "c(\"first\", \"m\", \"last\")c(\"first\", \"m\", \"last\")"
> paste(data, sep = "")
[1] "c(\"first\", \"m\", \"last\")" "c(\"first\", \"m\", \"last\")"
> paste(data, collapse = "", sep="")
[1] "c(\"first\", \"m\", \"last\")c(\"first\", \"m\", \"last\")" …Run Code Online (Sandbox Code Playgroud) 以下测试总是在我的Intel Mac Mini上为我生成故障或总线错误.
编译:
uname -a:
Darwin vogon13 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386
g++ -v:
Target: i686-apple-darwin9
Configured with: /var/tmp/gcc/gcc-5493~1/src/configure
--disable-checking -enable-werror --prefix=/usr --mandir=/share/man
--enable-languages=c,objc,c++,obj-c++
--program-transform-name=/^[cg][^.-]*$/s/$/-4.0/
--with-gxx-include-dir=/include/c++/4.0.0 --with-slibdir=/usr/lib
--build=i686-apple-darwin9 --with-arch=apple --with-tune=generic
--host=i686-apple-darwin9 --target=i686-apple-darwin9
Thread model: posix
gcc version 4.0.1 (Apple Inc. build 5493)
Run Code Online (Sandbox Code Playgroud)
编译命令:
"g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall
-pedantic -g -no-cpp-precomp -gdwarf-2 -Wno-long-double -Wno-long-long -fPIC
-DBOOST_DATE_TIME_NO_LIB=1 -DBOOST_THREAD_NO_LIB=1 -DBOOST_THREAD_USE_LIB=1
-DDATE_TIME_INLINE -DNDEBUG -I"." -c -o "strtod_test.o" "strtod_test.cpp"
"g++" -o "strtod_test" "strtod_test.o"
"libboost_thread-xgcc40-mt-s.a" …Run Code Online (Sandbox Code Playgroud) 我有一个简单的案例,我只想延迟分析的开始,直到我的自动化测试用例的某个部分.我想避免用户互动.我一直在VS2013 Pro的"Performance Explorer"中启动它.我有会话运行vstest.console.exe(没有检测),然后执行我的Test.dll中的测试(带有检测).当我在没有分析暂停的情况下启动它时,它运行得非常好.但尝试从Test.dll恢复探查器似乎不起作用.我在我的Test.dll中引用了Microsoft.VisualStudio.Profiler,然后调用:
DataCollection.ResumeProfile(ProfileLevel.Global, DataCollection.CurrentId);
在我想要恢复分析的位置.它不起作用.有没有办法做到这一点?
c# ×3
c++ ×3
darwin ×2
macos ×2
r ×2
boost ×1
coalesce ×1
containers ×1
data.table ×1
graph-theory ×1
iteration ×1
iterator ×1
libc ×1
libstdc++ ×1
macports ×1
profiling ×1
recursion ×1
strtod ×1
threadpool ×1
winforms ×1