小编kay*_*kay的帖子

C++程序中的形状

如果我没记错的话,我看到了一些不道德的C++库,它允许你在C++程序中输入ASCII-art形状并将它们视为对象.像这样的东西:

int area = someFreakyClass(o-----o
                           |     |
                           o-----o).area();
Run Code Online (Sandbox Code Playgroud)

这个图书馆叫什么?

c++

11
推荐指数
2
解决办法
944
查看次数

基于汉明重量的索引

假设我们有一个整数bitsize n=4;
我正在描述的问题是如何根据汉明权重及其知道的值来将数字索引到数组位置bitsize.例如,具有16个用于bitsize 4的元素的数组将/可能如下所示:

|0|1|2|4|8|3|5|6|9|10|12|7|11|13|14|15|
Run Code Online (Sandbox Code Playgroud)

元素按其汉明重量(必要)分组,并根据大小排序(不必要).只要您可以采取例如3(0011)进行一些操作并返回索引5,5(0101) - > 6等,则不需要排序.

n将存在所有位组合,并且不会重复.例如bitsize 3将有数组:

|0|1|2|4|3|5|6|7|
Run Code Online (Sandbox Code Playgroud)

我最好有一个没有循环的解决方案.或任何讨论simillar解决方案的论文.或者最后只是抛出任何关于如何做到这一点的想法.

c sorting indexing cuda hammingweight

11
推荐指数
1
解决办法
1915
查看次数

使用C++ TR1从二项分布生成数字

我试图使用以下代码(取自互联网)从二项分布生成数字.它编译,但它挂起一个执行.(我在mac上使用g ++.)

有人建议使用C++ TR1库功能从二项分布生成数字的工作代码吗?

#include <tr1/random>
#include <iostream>
#include <cstdlib>

using namespace std;
using namespace std::tr1;

int main()
{
  std::tr1::mt19937 eng; 
  eng.seed(time(NULL));
  std::tr1::binomial_distribution<int, double> roll(5, 1.0/6.0);
  std::cout << roll(eng) << std::endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ random tr1

11
推荐指数
1
解决办法
1700
查看次数

为什么没有std :: inplace_merge_unique?

我试着寻找一种可以做std::inplace_merge 后续std::unique做法的算法.在1遍中比在2中更有效率.无法在标准库中找到它或通过oogling找到它.

  1. 那么在不同的名称下可能会在某处提升实现吗?
  2. 这种算法是否可行(从某种意义上说,它具有与普通inplace_merge相同的复杂性保证)?

c++ stl

11
推荐指数
1
解决办法
234
查看次数

将字符串文字与char文字连接起来

我想连接一个字符串文字和char文字.语法错误,"abc" 'd' "efg"呈现编译器错误:

xc:4:24:错误:预期','或';' 在'd'之前

到现在为止,我必须使用snprift(不必要),尽管字符串文字的值和编译时知道的char文字.

我试过了

#define CONCAT(S,C) ({ \
    static const char *_r = { (S), (C) }; \
    _r; \
})
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为S没有剥离null终止符.(除了给出编译器警告.)

有没有办法编写一个宏来使用

  • "abc" MACRO('d') "efg" 要么
  • MACRO1(MACRO2("abc", 'd'), "efg") 要么
  • MACRO("abc", 'd', "efg")

如果有人问我为什么要这样:char文字来自一个库,我需要将字符串作为状态消息打印出来.

c string macros concatenation char

10
推荐指数
2
解决办法
7717
查看次数

Antlr4中语义谓词的语法

什么是ANTLR3中的"语义谓词"?Bart Kiers非常清楚地概述了Antlr3中的不同语义谓词.

太糟糕了,Antlr4中的语法/语义似乎有所改变,所以这不会编译:

end_of_statement
    :   ';'
    |   EOF
    |   {input.LT(1).getType() == RBRACE}? =>
    ;

RBRACE
    : '}'
    ;
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何处理end_of_statement的第三种情况:如果下一个标记是'}'但不消耗它,则接受.

antlr antlr4

10
推荐指数
1
解决办法
5313
查看次数

C++ constexpr函数实际上可以接受非常量表达式作为参数吗?

我已经定义了一个constexpr函数如下:

constexpr int foo(int i)
{
    return i*2;
}
Run Code Online (Sandbox Code Playgroud)

这就是主要功能:

int main()
{
    int i = 2;
    cout << foo(i) << endl;
    int arr[foo(i)];
    for (int j = 0; j < foo(i); j++)
        arr[j] = j;
    for (int j = 0; j < foo(i); j++)
        cout << arr[j] << " ";
    cout << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

该程序是在OS X 10.8下用命令clang ++编译的.我很惊讶编译器没有产生关于foo(i)不是常量表达式的任何错误消息,并且编译的程序实际上工作正常.为什么?

c++ function constexpr c++11

10
推荐指数
1
解决办法
3573
查看次数

无需安装即可将文件添加到VFAT映像

我想创建一个新的VFAT图像并添加一些文件.

# Create file of 1MB size:
dd if=/dev/zero of=my-image.fat count=1 bs=1M
# Format file as VFAT:
mkfs.vfat ./my-image.fat
Run Code Online (Sandbox Code Playgroud)

现在我想将文件./abc,./ def和./ghi添加到图像中.

没有 mount -o loop或我怎么办fusermount?我只想写一个新的,空的,原始的VFAT图像.我不需要删除附加或任何"复杂"操作.

我试过,7z -a因为7zip可以读取VFAT图像,但它不知道如何写入它.

linux filesystems command-line fat32

10
推荐指数
1
解决办法
4155
查看次数

具有复合赋值的JavaScript中的竞争条件

我不是在谈论涉及网络事件的复杂竞争条件.相反,我似乎发现+=运营商在V8(Chrome 58或Node 8)中不是原子的.

下面的代码旨在并行运行两个所谓的线程.每个"线程"重复调用一个函数,该函数在睡眠很多秒后返回其数字参数.结果总结为累加器.

function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

// Return the passed number after sleeping that many seconds
async function n(c) {
  await sleep(c * 1000);
  console.log('End', c);
  return c;
}

let acc = 0;  // global

// Call n repeatedly and sum up results
async function nForever(c) {
  while (1) {
    console.log('Calling', c);
    acc += await n(c);  // += not atomic?!
    console.log('Acc', acc); …
Run Code Online (Sandbox Code Playgroud)

javascript multithreading asynchronous node.js async-await

10
推荐指数
1
解决办法
275
查看次数

使Fabric.js对象可拖动但不"可选"

Fabric.js有这个非常酷的方面,默认情况下它允许所有对象都是"可选择的",这意味着它们可以被拖动,调整大小和旋转.但是,我希望它们只能被拖拽,不能调整大小或旋转.这可能吗?如果需要的话,我不介意与源码混淆,这比自己重新实现更好.

javascript fabricjs

9
推荐指数
2
解决办法
1万
查看次数