小编jot*_*tik的帖子

什么时候使用递归互斥?

我理解递归互斥锁允许互斥锁被锁定不止一次而不会陷入死锁,应该解锁相同的次数.但是在什么特定情况下你需要使用递归互斥体?我在寻找设计/代码级别的情况.

c++ recursion multithreading mutex recursive-mutex

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

何时以及为何使用malloc?

好吧,我无法理解何时以及为什么需要使用分配内存malloc.

这是我的代码:

#include <stdlib.h>

int main(int argc, const char *argv[]) {

  typedef struct {
    char *name;
    char *sex;
    int age;
  } student;


  //Now I can do two things
  student p;

  //or
  student *ptr = (student *)malloc(sizeof(student));

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么我可以使用时需要分配内存student p;

c malloc dynamic-memory-allocation

51
推荐指数
5
解决办法
5万
查看次数

C:如何使用POSIX线程声明递归互斥锁?

我对如何使用pthread声明递归互斥锁感到困惑.我尝试做的是一次只有一个线程能够运行一段代码(包括函数)但是在怀疑之后我发现使用互斥量不起作用而我应该使用递归互斥锁.这是我的代码:

pthread_mutex_lock(&mutex);                   // LOCK

item = queue_peek(queue);                     // get last item in queue
item_buff=item;                               // save item to a buffer
queue_removelast(queue);                      // remove last item from queue

pthread_mutex_unlock(&mutex);                 // UNLOCK
Run Code Online (Sandbox Code Playgroud)

所以我尝试做的只是串行读取/删除队列.

问题在于,没有任何关于如何声明递归互斥体的例子.或者可能有一些,但他们不为我编译.

c multithreading mutex pthreads recursive-mutex

45
推荐指数
3
解决办法
5万
查看次数

使用HTTPie发送嵌套的JSON对象

我试图使用HTTPie解析发送一些嵌套的JSON对象,但我找不到如何.很清楚如何发送JSON对象但不是嵌套的对象

{"user":{"name":"john""age":10}}

json httpie

44
推荐指数
3
解决办法
2万
查看次数

为什么shared_ptr删除者必须是CopyConstructible?

在C++ 11中std::shared_ptr有四个构造函数,可以传递d类型的删除对象D.这些构造函数的签名如下:

template<class Y, class D> shared_ptr(Y * p, D d);
template<class Y, class D, class A> shared_ptr(Y * p, D d, A a);
template <class D> shared_ptr(nullptr_t p, D d);
template <class D, class A> shared_ptr(nullptr_t p, D d, A a);
Run Code Online (Sandbox Code Playgroud)

[util.smartptr.shared.const]类型中的标准要求D为CopyConstructible.为什么需要这个?如果shared_ptr制作d那些删除者中的哪一个可能被调用的副本?是不是shared_ptr只能保留一个删除器?如果可以复制shared_ptr,拥有删除器意味着什么d

CopyConstructible要求背后的理由是什么?

PS:这个要求可能会使写作删除者复杂化shared_ptr.unique_ptr似乎对其删除有更好的要求.

c++ shared-ptr language-lawyer c++11

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

是否为C++标准允许的自定义类型的std :: to_string专门化?

在C++ 11及更高版本中,是否允许专用std::to_stringstd自定义类型的命名空间?

namespace std {
string to_string(::MyClass const & c) { return c.toString(); }
}
Run Code Online (Sandbox Code Playgroud)

示例用例:

int main() {
    MyClass c;
    std::cout << std::to_string(c) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

c++ std tostring specialization c++11

36
推荐指数
4
解决办法
4630
查看次数

swift 3.0的stringByReplacingOccurencesOfString()

使用stringByReplacingOccurencesOfString()最新版本的Xcode 8.2 Beta 时遇到问题.使用该函数时,Xcode显示字符串的值类型没有成员.

var clockworkSmsUrl = "https://api.clockworksms.com/http/send.aspx?"
                       + "key=123456789abcd"
                       + "to="
                       + usersNumber!
                       + "&content="
                       + usersTextMessage!

clockworkSmsUrl.stringByReplacingOccurrencesOfString(" ", withString: "+")
var clockworkSmsURLconvert = NSURL(string: clockworkSmsUrl)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

xcode swift

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

破坏函数参数的顺序是什么?

如果某些函数f带有参数p_1,...,p_n类型T_1,...,T_n分别用参数调用a_1,......,a_n并且它的正文抛出异常,则完成或返回,参数被破坏的顺序是什么?为什么?如果可能,请提供标准参考.

编辑:我实际上想询问函数"参数",但是由于TC和Columbo设法清除了我的困惑,我将这个问题留下来讨论参数并询问一个关于参数的新单独问题.有关区别,请参阅有关此问题的评论.

c++ arguments function object-lifetime language-lawyer

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

如果'throw'无法为异常对象分配内存会发生什么?

从C++ 11标准(15.1.p4):

除非在3.7.4.1中指出,否则异常对象的内存以未指定的方式分配

如果分配失败怎么办 - 它会抛出std::bad_alloc吗?打电话std::terminate?未指定?

c++ c++11

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

Backbone.js中的控制器

我是Backbone.js的新手.我已经完成了文档.我的问题是控制器概念在哪里出现?换句话说,Backbone.js中的控制器是什么?

我听说路由器是控制器.如果是这样,为什么它被视为控制器?我们可以开发没有路由器的简单基本应用程序吗?在那种情况下,控制器是什么?

model-view-controller backbone.js

34
推荐指数
3
解决办法
2万
查看次数