小编Jed*_*eal的帖子

将列表分成相等的部分?

我有一个size元素数组,并且我有一个函数将其分成大致相等的部分。它通过使用设置第一size-1部分size/num_of_sections的大小,并用剩下的内容设置最后部分的大小来实现。代码很简单,可以正常工作,看起来像这样:

int section_size = size / num_of_sections;
int last_section_size = size - ( section_size * (num_of_sections - 1) );
Run Code Online (Sandbox Code Playgroud)

唯一的问题是size和的某些组合num_of_sections不能很好地拆分。例如,如果size = 10num_of_sections = 6,则前四个部分将各为1个元素,最后一个部分将为6个元素。

我怎样才能改变这一种算法,将更多的平分它,特别是,让所有部分都大小两种XX+1?在上面的示例中,前四个部分的大小为2,然后后两个部分的大小均为1。显然需要产生第三个变量,该变量指示节号,在此之前,包括该节在内的所有先前节均为size X,所有后续节均为size X+1

c c++ arrays partitioning

4
推荐指数
1
解决办法
71
查看次数

如何使用字符串文字作为宏参数?

我的问题是这个问题的反面

我想编写一个宏,它将接受一个整数和一个字符串文字作为参数,如下所示:

#define STRING_MAP_ENTRY(value, name) \
  {value, std::to_string(val) + " - " + name}

STRING_MAP_ENTRY(0, "ENTRY_1")
Run Code Online (Sandbox Code Playgroud)

宏应该把上面的调用变成 {0, "0 - ENTRY_1"}

有没有办法做到这一点?我目前的尝试是这样的:

#define STRING_MAP_ENTRY(val, name) \
  { val, std::to_string(val) + "(" + name + ")" }
Run Code Online (Sandbox Code Playgroud)

c++ string macros

-1
推荐指数
1
解决办法
87
查看次数

标签 统计

c++ ×2

arrays ×1

c ×1

macros ×1

partitioning ×1

string ×1