小编Obl*_*ica的帖子

为什么const int对于char brace init很好?

我以为括号初始化不允许缩小。但是为什么int const允许char括号初始化?

int value1 = 12;
char c1{value1};  // error! no narrowing

const int value2 = 12;
char c2{value2};   // why is this fine?
Run Code Online (Sandbox Code Playgroud)

在Godbolt上看到它。

c++ const narrowing c++11

14
推荐指数
1
解决办法
164
查看次数

如何使用 react-testing-library 测试 redux-form

我正在尝试使用 react-testing-library 测试属于 redux-form 一部分的代码。为文本输入字段调用 fireEvent.change 以设置新值我希望应该更新输入的值,但它从未发生过。请在下面找到测试的片段。完整代码可以在https://codesandbox.io/s/redux-form-simple-example-n3820找到 如何使用 react-testing-library 测试 redux-form 的好例子?

...

const firstNameInput = getByTestId(container, "firstName");
const lastNameInput = getByTestId(container, "lastName");

const firstName = "firstName";
const lastName = "lastName";

fireEvent.change(firstNameInput, { target: { value: firstName } });
fireEvent.change(lastNameInput, { target: { value: lastName } });

const submitButton = getByTestId(container, "submitButton");
fireEvent.click(submitButton);

expect(onSubmit).toHaveBeenCalledTimes(1);
expect(onSubmit).toHaveBeenNthCalledWith(firstName, lastName);
Run Code Online (Sandbox Code Playgroud)

redux-form react-testing-library

7
推荐指数
1
解决办法
2403
查看次数

例外:版本不匹配:这是“cffi”包版本 1.13.1,

我尝试使用 CUDA 运行代码,出现此错误,系统似乎有问题

完整代码:我知道了CUDACast #10a - 你的第一个 CUDA Python 程序没有名为 numbapro 的模块

import numpy as np
from timeit import default_timer as timer
from numba import vectorize

@vectorize(["float32(float32, float32)"], target='cuda')


def VectorAdd(a, b):
        return a + b

def main():
    N = 32000000

    A = np.ones(N, dtype=np.float32)
    B = np.ones(N, dtype=np.float32)
    C = np.zeros(N, dtype=np.float32)

    start = timer()
    C = VectorAdd(A, B)
    vectoradd_timer = timer() - start

    print("C[:5] = " + str(C[:5]))
    print("C[-5:] = " + str(C[-5:]))

    print("VectorAdd took …
Run Code Online (Sandbox Code Playgroud)

python pip numba

4
推荐指数
2
解决办法
2941
查看次数

C ++入门5版:从uniqe_ptr初始化了shared_ptr?

在C ++入门5版上。第12章动态内存:编写如下:

shared_ptr p(u); P承担所有权uniqe_ptr u; 使为u空。shared_ptr p(q,d)假定内置指针q指向的对象的所有权。q必须可转换为T*($ 4.11.2,第161页)。 p将使用可调用对象d($ 10.3.2,p.388)代替deletefree q

  • 我不明白“假设unque_ptr内置对象的和来自于...”。

有人可以向我解释这一段吗?非常感谢。

c++ smart-pointers c++11

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

为什么第一次迭代后的指针指向随机值?

这是我的代码,我认为每条提示行将打印指针指向的相应对象。为什么会出现错误?这会打印一些随机的数字列表,首先总是正确的。

int* f()
{
    int array[10] = {1,2,3,4,5,6,7,8,9,10};
    int *p = array;
    return p;
}

int main()
{
    int* ptr = f();
    cout << *(ptr+0) << endl;
    cout << *(ptr+1) << endl;
    cout << *(ptr+2) << endl;
    cout << endl;

}
Run Code Online (Sandbox Code Playgroud)

c++ pointers function

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

跟踪向量中的智能指针

std::vector<unique_ptr<int>> v;
v.push_back(std::make_unique<int>(1));

unique_ptr<int>& rp0 = v[0];
cout << "rp1="<<rp0.get()<<"\n";
cout << "*rp1="<<*rp0<<"\n";

v.push_back(std::make_unique<int>(2));

cout << "rp1="<<rp0.get()<<"\n";
cout << "*rp1="<<*rp0<<"\n";
Run Code Online (Sandbox Code Playgroud)

为什么第二张打印结果与第一张打印结果不同?

rp1=0x1783c20
*rp1=1
rp1=0
Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)

c++ reference smart-pointers vector c++11

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

有没有一种方法可以使用数组填充向量?

我试图用数组中的整数填充向量,但是当我检查向量的内容时,所有值均为零。

我正在使用vector.push_back()尝试填充向量,因此它将以与数组相同的顺序,因为我需要以特定方式对其进行排序。

unsigned char* buffer = new unsigned char[size];
std::vector<unsigned char> *data = new std::vector<unsigned char>(size);
fread(buffer, sizeof(unsigned char), size, f);
for(int transfer = 0; transfer < size; transfer += 1){
    std::cout << buffer[transfer];
    data->push_back(buffer[transfer]);
    std::cout << int(data->at(transfer));
}
fclose(f);
Run Code Online (Sandbox Code Playgroud)

当我打印输出时,我可以看到当它们来自缓冲区数组时这些值不为零,但是当我从数据向量读取时它们却为零。这是一些示例输出?0 $ 0。

c++ arrays vector

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

std::move 不适用于 RValue 参考函数

在尝试学习 std::move 和右值引用时,我刚刚遇到以下内容:

int _tmain(int argc, _TCHAR* argv[])
{
    std::vector<int> vecNumbers;
    vecNumbers.push_back(10);
    vecNumbers.push_back(20);

    foo(std::move(vecNumbers));

    std::cout<<"After Move \n";
    std::cout<<"size:"<<vecNumbers.size()<<"\n";

    return 0;
}

void foo(  std::vector<int> &&value)
{
    std::cout<<"size in Function:"<<value.size()<<"\n";
}
Run Code Online (Sandbox Code Playgroud)

输出

size in Function:2
After Move
size:2
Run Code Online (Sandbox Code Playgroud)

在调用向量上的移动后,我预计大小为 0 ,但这里它仅作为参考移动。有人可以解释一下这里发生了什么吗?

c++ vector std rvalue-reference c++11

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

unordered_map &lt;int,int&gt;如何处理否定元素?

我可以在地图中分配否定元素作为键,例如map[-1]=10;它如何处理它,它使用了什么数据结构?我知道unordered_map在内部使用哈希,它如何处理哈希的否定元素?如果我使用数组进行哈希处理,则无法哈希负数元素,因为数组索引不能为负数

c++ stl c++11

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

C ++:当我突然发现编译的代码没有返回语句时,我正在解决一个问题

Visual Studios甚至Codechef都在编译我的代码,该代码缺少return语句。

我正在解决一些竞争性编程问题,并注意到我的程序在编译时没有在函数中使用return语句。我写了一个简单的函数,没有提到任何return语句,并且程序正在完美地编译。

这是代码

#include <iostream>
using namespace std;

int add(int x, int y)
{
    int c = x + y;
}

int main() {

    int a = add(1, 2);
    cout << a;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我期待一个我没有得到的错误,让我怀疑我的代码出了什么问题(当然不是上面的代码)。在上面的程序中,我得到的输出0我不明白该怎么办?

c++ return function visual-studio

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

std :: vector是否可以复制?为什么?

我遇到了一个问题std::vector<T>,在哪里T是一个内置类型,说向量不是简单的可复制.

我想知道它是否正确并且正在寻找原因.

c++ c++-standard-library language-lawyer c++11

0
推荐指数
1
解决办法
378
查看次数

我如何在没有重复的情况下随机迭代向量的每个元素

我尝试使用rand()with srand()生成随机索引号,但是我仍然得到重复的索引,是否还有其他方法可以遍历向量的所有元素?购买时可以随机获取索引而不影响向量元素random_shuffle()的顺序,因为随机混洗会改变向量的顺序顺序至关重要的元素。

c++ vector c++11

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

如何修复“对类型的引用需要初始值设定项”?

我正在基于 LeetCode 练习实现 LRU 缓存,但以下代码无法编译

using namespace std;

class LRUCache {
private:
    list<int> data;
    unordered_map<int, list<int>::iterator&> keys_to_data;

    void update_recency(int key, list<int>::iterator& it) {
        data.erase(it);
        data.push_front(key);
        keys_to_data[key]; // issue here
    }
public:
    LRUCache(int capacity) {

    }

    int get(int key) {
        int value = -1;
        auto value_it = keys_to_data.find(key);
        if(value_it != keys_to_data.end()) {
            value = *(value_it->second);
            update_recency(key, value_it->second);
        }
        return value;
    }

    void put(int key, int value) {
    }
};
Run Code Online (Sandbox Code Playgroud)

/Library/Developer/CommandLineTools/usr/include/c++/v1/tuple:1360:7: 错误:对类型 'std::__1::__list_iterator' 的引用需要一个初始化器 Second(_VSTD::forward<_Args2>(_VSTD: :get<_I2>(__second_args))...) ^

...巨大的堆栈跟踪...

/Users/Paul/Desktop/int/main.cpp:17:21:注意:在成员函数 'std::__1::unordered_map &、std::__1::hash、std::__1::equal_to 的实例化中, …

c++ unordered-map c++11

0
推荐指数
1
解决办法
2718
查看次数