我用C++ 11很好的新生成器和发行版生成随机值.在一个函数中,它就像一个魅力,看起来像这样:
void foo() {
mt19937 generator;
uniform_int_distribution<unsigned> distribution;
auto dice = bind(distribution, generator);
// dice() will now give a random unsigned value
}
Run Code Online (Sandbox Code Playgroud)
但是,如何将所有三个对象作为数据成员放在一个类中呢?我可以简单地编写generator和distribution作为数据成员,但是如何在dice不知道(或想知道)其确切类型的情况下创建数据成员?这令人惊讶
class X {
mt19937 generator;
uniform_int_distribution<unsigned> distribution;
decltype(bind(distribution, generator)) dice;
};
Run Code Online (Sandbox Code Playgroud)
error C2660: 'bind' : function does not take 2 arguments在Visual Studio 2013中产生错误.
我想找出在 Linux 上用 C++ 编写的函数的执行时间。我发现了很多与此相关的帖子。我尝试了此链接计时器方法中提到的所有方法来计算时间。以下是我的函数的执行时间结果:
time() : 0 seconds
clock() : 0.01 seconds
gettimeofday() : 0.002869 seconds
rdtsc() : 0.00262336 seconds
clock_gettime() : 0.00672151 seconds
chrono : 0.002841 seconds
Run Code Online (Sandbox Code Playgroud)
请帮助我哪种方法的读数可靠,因为所有结果的读数都不同。我读到您的操作系统正在不同的任务之间切换,因此不能期望读数非常准确。有没有一种方法可以计算 CPU 在我的函数上花费的时间。我听说过分析工具的使用,但还没有找到任何函数的示例。请指导我。
警告:
src/BoardRep.h:49:12: warning: ‘BoardRep::BoardRep::Row::<anonymous struct>::a’
is too small to hold all values of ‘enum class BoardRep::Piece’
[enabled by default]
Piece a:2;
^
Run Code Online (Sandbox Code Playgroud)
枚举:
enum class Piece: unsigned char {
EMPTY,
WHITE,
BLACK
};
Run Code Online (Sandbox Code Playgroud)
使用:
union Row {
struct {
Piece a:2;
Piece b:2;
Piece c:2;
Piece d:2;
Piece e:2;
Piece f:2;
Piece g:2;
Piece h:2;
};
unsigned short raw;
};
Run Code Online (Sandbox Code Playgroud)
如果enum我同意GCC,它可能不得不截断,但这是因为enums与整数和预处理器定义并没有真正分开.然而,一个enum class更强大.如果它不够强大,不能假设所有Piece取整数值都在0到2之间,则警告是有意义的.否则海湾合作委员会将不必要地挑剔,可能值得邮寄清单说"看,这是一个愚蠢的警告"
您可以在2位数据中存储4个不同的值,我只需要3个不同的值,因此任何长度为4或更小的枚举应该很好地适合给定的2位(并且我的枚举确实"派生"(更好的术语?)来自无符号类型).如果我有5个或更多那么我会期待一个警告.
我试图了解 R 中的 s3 类系统。
文档说我需要为我想要创建的方法创建一个通用函数。
假设我想foo为 class创建一个方法XYZ。
有了 R 的所有包,我怎么能确定我没有覆盖以前创建的泛型方法?
总结是一个不好的例子,因为每个人都可能知道它已经存在,但是我的泛型可能已经定义在我已经加载或我将加载的包中。
我正在使用knitr::rmarkdown(但knitr::knitr功能相同)作为我的VignetteEngine。然后,我使用构建包小插图devtools::build_vignettes()。
这可行,但仅在中创建HTML和R输出文件inst/doc。我想要的是Markdown输出文件,因为只有该文件可以直接在Github项目页面中显示(对于HTML文件,Github显示源,对于Rmd文件,它显示渲染的输出,但是-显然-不执行R块)。
我已经尝试找出如何为custom VignetteEngines 指定输出,并且我认为应该有可能(毕竟,其他软件包至少使用它来构建PDF vignettes),但是我找不到通过这样做的方法devtools::build_vignettes。是否没有办法手动构建小插图(即通过knitr::knit忽略VignetteBuilder指令的类似机制)?
我也无法在文档/源中找到相关信息。
我正在制作地图,我想在每个州内放置一个小文本标签.我目前的问题是文本超出了州限制,所以看起来不太好看:

我尝试使用均值,中位数,质心等.
我想要的是每个文本完全在多边形内部或外部,如下所示:
(图片来自http://www.businessinsider.com/map-what-100-is-actually-worth-in-your-state-2015-7?IR=T)
我使用以下代码生成我的图片:
library(maps)
library(dplyr)
library(ggplot2)
#data
mapbase <- map_data("state.vbm")
data(state.vbm.center)
df <- state.vbm.center %>% as.data.frame() %>%
mutate(region = unique(mapbase$region) ) %>% full_join(mapbase)
#actual plotting
cnames <- aggregate(cbind(long, lat) ~ region, data=df, FUN=median)
gmap<-
ggplot()+
geom_polygon( data=df2,
aes(long, lat, group = region, fill = somevalue,alpha=0.3)) +
coord_fixed() +
theme_void() +
geom_text(data=cnames, aes( fontface=2 ,cnames$long, cnames$lat , label = "text"
), color= "black" ,size=3,check_overlap = T, position=position_jitter(width=3, height=3) ) +
scale_fill_gradient(low="red",high="blue")
Run Code Online (Sandbox Code Playgroud)
非常感谢您的提示!
在 RStudio 中,我得到像 1e-2 或 4e-35 这样的科学记数法结果。我正在使用 xtable 将这些数字导出到乳胶,但希望它们看起来像乳胶中的常规格式,即,$1 \times 10^{-2}$或$4 \times 10^{-35}$. 如何在 R 中编码以获得像 xtable 输出这样的常规科学记数法格式?
假设我的数据是两列,一列是“Condition”,一列是“Stars”
food <- data.frame(Condition = c("A", "B", "A", "B", "A"), Stars=c('good','meh','meh','meh','good'))
Run Code Online (Sandbox Code Playgroud)
如何制作按“条件”分组的“星”频率的条形图?
现在我有
q <- ggplot(food, aes(x=Stars))
q + geom_bar(aes(y=..count../sum(..count..)))
Run Code Online (Sandbox Code Playgroud)
如何制作由“条件”分组的四个条形图?
例如。“条件 A”的“好”为 0.66,“Meh”为 0.33
我有一个矢量:
x <- c(0.0, 0.5, 1.000, 1.5, 1.6, 1.7, 1.75, 2.0, 2.4, 2.5, 3.0, 74.0)
Run Code Online (Sandbox Code Playgroud)
如何仅提取x小数位后包含非零值的值?例如,结果向量将如下所示:
c(0.5, 1.5, 1.6, 1.7, 1.75, 2.4, 2.5)
Run Code Online (Sandbox Code Playgroud)
其中已移除0.0,1.000,2.0,3.0,和74.0.
我还在学习 python,有什么方法可以将 python 字符串转换为具有定义模式的几个变量吗?
例如图案和文字:
pattern = '{var1},{var2}::{var3}-:{var4}'
string_text = 'test1,test2::test3-:test4'
Run Code Online (Sandbox Code Playgroud)
转换成:
var1, var2, var3, var4 = magic method convert string_text using pattern
print(var1) # test1
print(var2) # test2
print(var3) # test3
print(var4) # test4
Run Code Online (Sandbox Code Playgroud)
我知道可以使用日期时间对象执行此类操作:
datetime.strptime('1992-12-22', "%Y-%m-%d")
Run Code Online (Sandbox Code Playgroud)
我也可以用正则表达式来做到这一点(不需要帮助;)但也许字符串对象中有相同的方法,我只是不知道如何使用?
我将不胜感激任何帮助!