小编Kon*_*lph的帖子

如何用std :: bind()创建数据成员?

我用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)

但是,如何将所有三个对象作为数据成员放在一个类中呢?我可以简单地编写generatordistribution作为数据成员,但是如何在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中产生错误.

c++ member stdbind c++11

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

函数执行时间

我想找出在 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 在我的函数上花费的时间。我听说过分析工具的使用,但还没有找到任何函数的示例。请指导我。

c++ linux profiling

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

这个警告与枚举类大小有关吗?

警告:

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个或更多那么我会期待一个警告.

c++ enums gcc c++11

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

如何不覆盖泛型方法

我试图了解 R 中的 s3 类系统。

文档说我需要为我想要创建的方法创建一个通用函数。

假设我想foo为 class创建一个方法XYZ

有了 R 的所有包,我怎么能确定我没有覆盖以前创建的泛型方法?

总结是一个不好的例子,因为每个人都可能知道它已经存在,但是我的泛型可能已经定义在我已经加载或我将加载的包中。

oop methods r s4 r-s3

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

使用devtools构建.md小插图

我正在使用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指令的类似机制)?

我也无法在文档/源中找到相关信息。

r devtools package knitr

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

如何确保文本标题位于多边形对象内?

我正在制作地图,我想在每个州内放置一个小文本标签.我目前的问题是文本超出了州限制,所以看起来不太好看: 在此输入图像描述

我尝试使用均值,中位数,质心等.

我想要的是每个文本完全在多边形内部或外部,如下所示: 在此输入图像描述(图片来自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)

非常感谢您的提示!

visualization r ggplot2 matplotlib-basemap

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

格式化乳胶的科学记数法

在 RStudio 中,我得到像 1e-2 或 4e-35 这样的科学记数法结果。我正在使用 xtable 将这些数字导出到乳胶,但希望它们看起来像乳胶中的常规格式,即,$1 \times 10^{-2}$$4 \times 10^{-35}$. 如何在 R 中编码以获得像 xtable 输出这样的常规科学记数法格式?

r

5
推荐指数
0
解决办法
6106
查看次数

如何在组中制作频率条形图?

假设我的数据是两列,一列是“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

r bar-chart ggplot2

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

删除没有小数位的双打

我有一个矢量:

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.

regex grep r data-manipulation

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

使用模式将字符串转换为几个变量

我还在学习 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)

我也可以用正则表达式来做到这一点(不需要帮助;)但也许字符串对象中有相同的方法,我只是不知道如何使用?

我将不胜感激任何帮助!

python string

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