小编xax*_*xon的帖子

为什么有人会使用set而不是unordered_set?

C++ 0x正在引入unordered_set,可以在boost许多其他地方使用.我理解的是unordered_set具有O(1)查找复杂性的哈希表.另一方面,set只是具有log(n)查找复杂性的树.为什么人们会使用set而不是unordered_set?即是否需要set了?

c++ algorithm data-structures c++11

134
推荐指数
10
解决办法
6万
查看次数

在CLion中,仅头文件库:文件"不属于任何项目目标,代码洞察功能可能无法正常工作"

我有一个使用cmake命令设置的仅头文件库项目:

add_library(my_library INTERFACE)
Run Code Online (Sandbox Code Playgroud)

而且我还补充道

target_sources(my_library INTERFACE ${MY_LIRBARY_HEADER_FILES})
Run Code Online (Sandbox Code Playgroud)

但是当我打开一个源文件时,我收到警告:

此文件不属于任何项目目标,代码洞察功能可能无法正常工作

而且我在代码完成等方面失去了很多功能.

设置它的正确方法是什么,以便CLion在仅头文件库中提供其常用功能?

c++ cmake header-only clion

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

获取CPU温度

我想获得CPU温度.以下是我使用C++和WMI所做的事情.我正在读MSAcpi_ThermalZoneTemperature,但它始终是相同的,根本不是CPU温度.

有没有办法在不必编写驱动程序的情况下获得CPU的实际温度?或者我可以使用任何库吗?先感谢您.

#define _WIN32_DCOM
#include <iostream>
using namespace std;
#include <comdef.h>
#include <Wbemidl.h>

#pragma comment(lib, "wbemuuid.lib")

HRESULT GetCpuTemperature(LPLONG pTemperature)
{
        if (pTemperature == NULL)
                return E_INVALIDARG;

        *pTemperature = -1;
        HRESULT ci = CoInitialize(NULL);
        HRESULT hr = CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_DEFAULT, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE, NULL);
        if (SUCCEEDED(hr))
        {
                IWbemLocator *pLocator;
                hr = CoCreateInstance(CLSID_WbemAdministrativeLocator, NULL, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (LPVOID*)&pLocator);
                if (SUCCEEDED(hr))
                {
                        IWbemServices *pServices;
                        BSTR ns = SysAllocString(L"root\\WMI");
                        hr = pLocator->ConnectServer(ns, NULL, NULL, NULL, 0, NULL, NULL, &pServices);
                        pLocator->Release();
                        SysFreeString(ns);
                        if (SUCCEEDED(hr)) …
Run Code Online (Sandbox Code Playgroud)

c++ windows cpu winapi temperature

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

inotify和epoll之间的区别

我想知道i/o观察者inotifyepoll之间的区别是什么?

inotify的

  • inotify_init(void)创建inotify实例以从中读取事件
  • inotify_add_watch(int fd,const char*path,int mask)返回路径后面的文件节点周围的手表fd
  • inotify_rm_watch(int fd,int wd)停止观看fd上的事件

epoll的

  • epoll_create(void)创建epoll对象
  • epoll_ctl(int epfd,int op,int fd,struct epoll_event*event)设置要监视的事件
  • epoll_wait(int epfd,struct epoll_event*events,int maxevents,int timeout); 阻止事件发生

所以在文件观看方面似乎有不同的方法.Inotify尝试让用户决定何时收集事件,而epoll会阻止事件发生.

它是否正确?还有什么其他差异?

博多

c c++ linux epoll inotify

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

函数中的r值参数

当在函数之间传递r值时,我想知道c ++行为.

看看这个简单的代码:

#include <string>

void foo(std::string&& str) {
  // Accept a rvalue of str
}

void bar(std::string&& str) {
  // foo(str);          // Does not compile. Compiler says cannot bind lvalue into rvalue.
  foo(std::move(str));  // It feels like a re-casting into a r-value?
}

int main(int argc, char *argv[]) {
  bar(std::string("c++_rvalue"));
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我知道当我在bar函数内部时我需要使用move函数来调用foo函数.我现在的问题是为什么?

当我在bar函数内部时,变量str应该已经是一个r值,但编译器就像是一个l值.

有人可以引用一些关于这种行为的标准吗?谢谢!

c++ rvalue c++11

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

如何取消正在运行的迁移

ruby on rails我运行的应用程序中rails db:migrate,由于某种原因,迁移挂起.我最终不得不杀死运行迁移的终端选项卡.当我尝试rails db:migrate在新选项卡中运行时,收到此错误消息:

Cannot run migrations because another migration process is currently running
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

ruby-on-rails

14
推荐指数
2
解决办法
6001
查看次数

jquery on不起作用,但live确实使用1.7.1库

我有一个动态创建的按钮,所以我需要在我的代码上使用.live.这是一个例子:

$('#send').live('click', function(){
.....
..... code .....
.....
});
Run Code Online (Sandbox Code Playgroud)

我正在使用jQuery库1.7.1,我想将其更改为使用.on但它不起作用.为什么是这样?语法不同吗?

我查看了文档,我似乎没有做错任何事.我不介意把它留下来,但我想知道我做错了什么.

http://api.jquery.com/on/

jquery events

10
推荐指数
2
解决办法
3619
查看次数

hasOwnProperty是否仍应与for..in语句一起使用

有很多博客说hasOwnProperty每当使用for..in循环时都应该使用检查,但我不明白为什么会这样.有和没有检查我们得到相同的结果.

看看这个小提琴.

javascript

10
推荐指数
2
解决办法
2555
查看次数

什么是属于单个隔离的多个V8上下文对象的共享/离散?

我理解v8 :: Isolate的想法,我理解运行的所有内容都在与隔离相关联的v8 :: Context中运行.与不同分离株相关的上下文不能共享任何内容.

我的问题是,在一个孤立中有多个上下文是什么意思?在上下文之间共享什么?什么是他们之间的离散?什么时候可以在一个东西中制作东西并在另一个中使用它?通常在API中,如果某些东西在创建它时需要隔离或上下文,它似乎几乎是任意的.

此外,欢迎任何关于在单个隔离中使用多个上下文的案例的建议,以帮助我更好地理解它们.

我看到这个问题:v8 :: Isolate和v8 :: Context之间究竟有什么区别?但它并没有详细说明你如何/为什么在一个孤立中使用多个上下文.

谢谢.

javascript v8

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

当用作模板参数时,函数指针是否需要指向具有外部链接的函数?

在下面的代码中,在第一个表单上,gcc抱怨在模板参数中有一个lambda.在第二种形式中,gcc抱怨lambda_function_pointer没有外部链接.Clang编译并运行代码就好了,即使是-pedantic.

所述+前拉姆达的是将其转换到衰变到一个函数指针.

template<auto f>
void func() {
    f();
}
void g();
int main() {
    func<+[](){}>();  // gcc complains about lambda in template args

    constexpr auto lambda_function_pointer = +[](){};
    func<lambda_function_pointer>(); // gcc complains about not having external linkage

}
Run Code Online (Sandbox Code Playgroud)

直播:https://godbolt.org/g/ey5uo7

谢谢.

编辑:https://timsong-cpp.github.io/cppwp/n4659/expr.prim.lambda#2 提到了在签名不是拉姆达的缘故模板参数未出现lambda表达式,但随着+,它得到摆脱lambda类型.

edit2:这可能与问题的链接部分有关:为什么C++ 03需要模板参数才能有外部链接?

c++ lambda templates

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