小编Yve*_*ves的帖子

如何在c ++中使用julia语言(visual studio)

是否可以在c ++中使用julia语言?julia语言是否提供了一些库?

现在,我正在尝试在我的c ++项目中使用julia语言的一些功能.这可能吗?我能做什么?

提前致谢.

c++ visual-studio julia

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

如何在朱莉娅中使用锁

我和朱莉娅一起工作.IDE是Juno.

如果我是对的,@async可以生成一个任务,它就像一个线程.
所以我们可以这样做:

@async begin
   # do something1
end
@async begin
   # do something2
end
Run Code Online (Sandbox Code Playgroud)

现在,我需要锁定一个线程.例如,do something1是将消息推送到列表并do something2从同一列表中弹出消息.

就像synchronized在Java中一样.

是什么synchronized在朱莉娅?

synchronized julia

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

为什么 stringstream 的循环给了我两次最后一个单词

我正在尝试在 的帮助下逐字循环字符串stringstream,这是我的代码:

string str = "hello world";
stringstream ss(str);
string word;
while (ss)
{
    ss >> word;
    cout << word << endl;
}
Run Code Online (Sandbox Code Playgroud)

但是,我得到的结果如下:

hello
world
world
Run Code Online (Sandbox Code Playgroud)

为什么我得到了world两次?

c++ string stringstream

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

什么可能导致 C++ 级别的页面错误

我是一名 C++ 开发人员,我想知道什么可能导致 C++ 级别的页面错误。

我读过一些关于页面错误的文章,我认为并且fork()可能malloc/new导致页面错误。

还有其他原因可能导致页面错误吗?

可执行文件大小是否较大导致页面错误的可能性较高?

逻辑结构非常复杂的可执行文件是否更容易导致页面错误?

c++ page-fault

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

如何通过函数重载避免代码重复

我有一对重载函数:

void func(const std::string& str, int a, char ch, double d) {
    // piece of code A
    sendMsg(str, a, ch, d);
    // piece of code B
}

void func(int a, char ch, double d) {
    // piece of code A
    sendMsg(a, ch, d);
    // piece of code B
}
Run Code Online (Sandbox Code Playgroud)

piece of code A并且piece of code B完全相同,唯一的区别是 的参数sendMsg

有没有办法避免代码重复?

c++ overloading c++11

5
推荐指数
4
解决办法
254
查看次数

移动 std::map 与移动 std::map 的所有元素

std::map<int, Obj> mp;
// insert elements into mp

// case 1
std::map<int, Obj> mp2;
mp2 = std::move(mp);

// case 2
std::map<int, Obj> mp3;
std::move(std::begin(mp), std::end(mp), std::inserter(mp3, std::end(mp3));
Run Code Online (Sandbox Code Playgroud)

我对这两个案例感到困惑。它们完全一样吗?

c++ move stdmap std c++11

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

我可以更改已分配给 std::string_view 的 std::string

我只知道C++17引入了std::string_view. 它不保存任何字符串,而是指向一个字符串。如果是这样,我对以下情况感到困惑:

std::string str = "abc";
std::string_view strV = str;
std::cout << strV << std::endl;
str = "1";
std::cout << strV << std::endl;
Run Code Online (Sandbox Code Playgroud)

我刚刚在网上的一些 c++17 编译器上尝试了这段代码,输出如下:

abc
1c
Run Code Online (Sandbox Code Playgroud)

显然,1c这不是我所期望的。

那么这是否意味着我们不应该更改分配给 a 的字符串std::string_view

c++ stdstring string-view c++17

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

golang http:如何将请求路由到处理程序

我是 Golang 新手,有一个关于构建 Web 服务器的简单问题。

说我的网络服务器有用户,因此用户可以更改他们的名称和密码。以下是我设计 URL 的方法:

/users/Test         GET
/users/Test/rename       POST   newname=Test2
/users/Test/newpassword  POST   newpassword=PWD
Run Code Online (Sandbox Code Playgroud)

第一行显示名为 的用户的信息Test。第二个和第三个是重命名和重置密码。

所以我想我需要使用一些正则表达式来匹配HTTP请求,比如http.HandleFunc("/users/{\w}+", controller.UsersHandler).

然而Golang似乎并不支持这样的事情。那么这是否意味着我必须改变我的设计?例如,要显示用户的信息Test,我必须做什么/users GET name=Test

http go

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

std::atomic 是如何实现的

我正在研究C++11 中mutex和之间的区别atomic

据我了解,mutex是一种基于操作系统/内核实现的锁机制。例如,Linux 提供了一种机制,即futex. 在 的帮助下futex,我们可以实现mutexsemaphore。此外,我知道这futex是由低级原子操作实现的,例如CompareAndSet, CompareAndSwap

对于std::atomic,我知道它是基于C++11引入的内存模型实现的。但是,我不知道内存模型在低级别是如何实现的。如果也是通过原子操作之类CompareAndSet的方式实现的,std::atomic和 和 有mutex什么区别?

总之,如果std::atomic::is_lock_free给我一个false,好吧,我会说这std::atomicmutex. 但是如果它给了我一个true,它是如何在低级别实现的?

c++ multithreading mutex lock-free stdatomic

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

内存栅栏是否涉及内核

在问了这个问题之后,我了解到原子指令,例如test-and-set,不会涉及内核。只有当进程需要进入睡眠状态(等待获取锁)或唤醒(因为它无法获取锁但现在可以)时,内核才必须参与执行调度操作。

如果是这样,是否意味着内存栅栏(例如std::atomic_thread_fence在 c++11 中)不会也涉及内核?

c++ performance atomic memory-barriers stdatomic

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