小编wen*_*eno的帖子

基于布尔属性的条件字段验证

我希望该favoriteAlcohol字段仅在props.isAdult传递给组件是true.

Yup.object().shape({
  favoriteAlcohol: Yup.string().when(props.isAdult, {
    is: true,
    then: Yup.string().required(),
  }),
  name: Yup.string().required('Nazwa jest wymagana'),
})
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

上面的解决方案不起作用,因为when将表单的“键”作为第一个参数,并且我通过了 prop。

一个可行的解决方案是映射prop.isAdultisAdult表单值字段,然后我可以将其'isAdult'作为第一个参数传递给when()函数。不过,这不是最好的解决方案。

javascript validation reactjs yup formik

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

找不到最新插入 std::map 的键

我的问题是,无论我在 中插入的最后一个元素是什么std::map,我都找不到它。

我有以下地图,它将 Color 作为键并将其编码为某种对象类型(枚举)。

class ColorEncoder {
private:
    std::map<Color, Object::Type> validObjects;

public:
    ColorEncoder() {
        load(Color(76, 177, 34), Object::Player);
        load(Color(36, 28, 237), Object::Block);
     // load(Color(0, 111, 222), Object::PleaseDont); // uncomment this line and everything will work correctly,
                                                      // but the map will have one garbage value
    }

    void load(Color color, Object::Type type) {
        validObjects.insert(std::make_pair(color, type));
    }

    auto& getValidObjects() {
        return validObjects;
    }
};
Run Code Online (Sandbox Code Playgroud)

我也有一个array颜色。目标是验证每个数组元素是否确实存在于映射中。

因此,我遍历数组,每次检查当前数组元素是否作为映射中的键存在:

class BMP_Analyzer {
public:
    // assume data size is 12
    BMP_Analyzer(std::unique_ptr<Color[]>& …
Run Code Online (Sandbox Code Playgroud)

c++ oop stdmap std

3
推荐指数
1
解决办法
125
查看次数

使用标准库计算字符串中的十进制数

我在字符串中有空格分隔的整数,例如:

std::string s = "1 2 33 444 0 5";
Run Code Online (Sandbox Code Playgroud)

字符串格式良好:只有空格分隔的数字,没有任何字母、换行符等。


如何以STL方式计算上述字符串中的整数数量?我正在寻找将使用例如迭代器或<algorithm>.

c++

3
推荐指数
3
解决办法
143
查看次数

将函数传递给函数时,需要将误差左值作为一元“&”操作数

我只是熟悉如何将函数作为参数传递给另一个函数,以及整个指针/ C。

我有以下功能需要另一个功能:

void func(void (*vect) (float *, float), float *x1, float size)
{
    vect(&x1, size);
    // other instructions
}
Run Code Online (Sandbox Code Playgroud)

这是foo定义的方式(foovect我传递给函数的方式):

void foo(float *x1, float size)
{
    //
}
Run Code Online (Sandbox Code Playgroud)

这就是我使用该功能的方式 func

func(&foo(&x1, size), &x1, size);
Run Code Online (Sandbox Code Playgroud)

由于某种原因,我收到以下错误:

error: lvalue required as unary '&' operand

谁能分享他的见解,为什么会这样?

c pointers function-pointers function lvalue

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

从 XMM 迁移到 YMM

考虑:

movdqa xmm0, xmmword ptr [rcx]
movdqa xmm1, xmmword ptr [rcx + 16]
movdqa xmm2, xmmword ptr [rcx + 32]
movdqa xmm3, xmmword ptr [rcx + 48]
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常。rcx是 32 位 uint 数组的第一个元素的地址。

ymm但是,当尝试以类似的方式使用时:

vmovdqa ymm0, ymmword ptr [rcx]
vmovdqa ymm1, ymmword ptr [rcx + 32]
Run Code Online (Sandbox Code Playgroud)

该代码随机抛出 sigsegvs: Exception thrown at 0x00007FF95ACC102C (Asm.dll) in Asm.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.

为什么,我怎样才能让它发挥作用?

我的CPU是i5-10210u(支持AVX-256)。在 X64 发布/调试中运行。

assembly sse masm simd avx

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

复制和更改 .docx 表中的行

我正在使用 Apache POI 处理 .docx 文件。

我有 .docx ,其中有1 行、1 列表

XWPFTable table = document.getTables().get(0);
XWPFTableRow copiedRow = table.getRow(0);
table.addRow(copiedRow);
Run Code Online (Sandbox Code Playgroud)

上面的代码成功复制了行,因此表现在有2 rows


但是,我也想改变复制的行。

XWPFTable table = document.getTables().get(0);
XWPFTableRow copiedRow = table.getRow(0);
copiedRow.getTableCells().get(0).setText("SOME MODIFICATION HERE"); // <- setting some data
table.addRow(copiedRow);
Run Code Online (Sandbox Code Playgroud)

问题是......修改影响了行。原来的第一个和刚刚添加的第二个都会受到影响。


我还尝试显式构造新行,如下所示:

copiedRow.getTableCells().get(0).setText("SOME MODIFICATION");
XWPFTableRow newRow = new XWPFTableRow(copiedRow.getCtRow(), table);
table.addRow(newRow); 
Run Code Online (Sandbox Code Playgroud)

...但结果仍然相同:两行都被修改,而不仅仅是第二行。

我试图使示例尽可能简单。谢谢你的帮助!

java docx apache-poi xwpf

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

标签 统计

c++ ×2

apache-poi ×1

assembly ×1

avx ×1

c ×1

docx ×1

formik ×1

function ×1

function-pointers ×1

java ×1

javascript ×1

lvalue ×1

masm ×1

oop ×1

pointers ×1

reactjs ×1

simd ×1

sse ×1

std ×1

stdmap ×1

validation ×1

xwpf ×1

yup ×1