草庐IT

find_one

全部标签

c++ - 如何声明和使用 "one writer, many readers, one process, simple type"变量?

我有一个非常简单的问题。我有简单的类型变量(如int)。我有一个进程,一个写入线程,几个“只读”线程。我应该如何声明变量?volatileintstd::atomicint我希望当“编写器”线程修改值时,所有“读取器”线程都应该尽快看到新值。同时读取和写入变量是可以的,但我希望读取器获得旧值或新值,而不是一些“中间”值。我正在使用单CPUXeonE5v3机器。我不需要便携,我只在这个服务器上运行代码,我用-march=native-mtune=native编译.性能非常重要,所以除非绝对需要,否则我不想添加“同步开销”。如果我只使用int一个线程写入值是否有可能在另一个线程中我暂时看不

c++ - 我是否需要同步 std::condition_variable/condition_variable_any::notify_one

是否需要同步std::condition_variable/condition_variable_any::notify_one?据我所知,如果丢失通知是可以接受的-可以调用未protectednotify_one(例如通过互斥锁)。例如,我看到了以下使用模式(抱歉,不记得在哪里):{{lock_guardl(m);//dowork}c.notify_one();}但是,我检查了libstdc++源代码,发现:condition_variable::notify_onevoidcondition_variable::notify_one()noexcept{int__e=__gthre

c++ -/usr/bin/ld : cannot find -lboost_system-mt

我最近从boost1.40升级到了1.45,完全删除了以前的boost目录,下载了1.45的源代码并重建了我想要的库。然后我使用bjaminstall安装了这些库。我的机器上没有其他任何变化,但是,现在当我构建我的C++程序时,我收到以下链接错误:/usr/bin/ld:cannotfind-lboost_system-mt我搜索了,该文件确实不存在。似乎mt库不再是库的一部分-还是我遗漏了什么?我该如何解决这个问题? 最佳答案 好吧,我在ubuntu12.04(x86_64)上通过良好的scattergun方法解决了这个错误mak

c++ - 运行C++程序时出现"The system cannot find the file specified"

我安装了VisualStudio2010。我编写了一个简单的代码,我确信它是正确的,但不幸的是,当我运行该代码时,我收到以下错误。这是我的代码:#includeusingnamespacestd;intmain(){cout这是错误:Unabletostartprogram'C:\Users\Soheil\Desktop\Newfolder\sam\Debug\sam.exeThesystemcannotfindthefilespecified你能帮我解决这个问题吗?我应该在具体目录?我花了很多时间来解决这个问题还没有成功。 最佳答案

c++ -/usr/bin/ld : cannot find

我创建了一个.so文件并将其放在/opt/lib位置,然后在此之后将此路径添加到LD_LIBRARY_PATH我尝试使用以下命令编译我的主程序:g++-Wall-I/home/alwin/Development/Calculator/main.cpp-lcalc-ocalculator我收到以下错误:/usr/bin/ld:cannotfind-lcalccollect2:ldreturned1exitstatus有人可以帮我解决这个问题吗?我使用代码块IDE创建了共享库 最佳答案 将-L/opt/lib添加到您的编译器参数中,这会

c++ - unordered_map : which one is faster find() or count()?

判断unordered_map容器中是否有带有指定键的项目的最快方法是什么? 最佳答案 它们的性能大致相同。您应该使用最能表达您想要做的事情的算法。详细说明一下,一般count()会使用find()来实现。例如,在libcxx,count()实现为return(find(__k)!=end()); 关于c++-unordered_map:whichoneisfasterfind()orcount()?,我们在StackOverflow上找到一个类似的问题: h

c++ - 避免 std::map::find() 的 key 构造

假设我有一个std::map.std::string可以与没有std::string的C字符串(constchar*)进行比较临时工。但是,map::find()似乎迫使我build一个临时的std::string,这可能需要分配内存。我该如何避免这种情况?从概念上讲,这很容易,但STL似乎可以防止这种情况发生。#includeintmain(){std::mapm;m.find("Olaf");} 最佳答案 您的担忧是真实的,C++11没有好的解决方法。C++14通过添加std::map::find的模板化重载解决了这个问题。——

c++ - is_integral vs is_integer : is one of them redundant?

is_integral和is_integer似乎以同样的方式回答同样的事情。从相关文档页面的链接来看,is_integral似乎缺少以下类型的特化signedcharunsignedcharunsignedshortunsignedintunsignedlongunsignedlonglong还有一个compiledexample,(当然)也显示了它们在这些类型上的相同行为:#include#includeusingnamespacestd;intmain(){cout::value::value::value::value::value::value如果它们的行为也相同,那么在C++

c++ - 使用 cmake 构建错误 : cannot find -lpthreads

我有一个在给定机器上顺利运行的c++项目,现在我正尝试在另一台具有相同操作系统(Xubuntu14.04)的机器上编译它。我已经安装了所有依赖项,并且正在使用cmake构建项目,尽管它因以下错误而停止:Determiningifthefunctionpthread_createexistsinthepthreadsfailedwiththefollowingoutput:.../usr/bin/ld:cannotfind-lpthreads包含编译器标志的cmakelists.txt行如下:set(CMAKE_C_FLAGS"${CMAKE_C_FLAGS}-O3-lpthread-D

Node.js 0.8.15 npm 错误 : Cannot find module 'proto-list'

我通过从源代码编译在Ubuntu11.10x64上安装了最新的Node.js(0.8.15)。./configure--dest-cpu=x64makesudomakeinstall一切正常,Node.js运行良好,但npm不想正常运行。对于任何npm命令,它都会出现以下错误Error:Cannotfindmodule'proto-list'atFunction.Module._resolveFilename(module.js:338:15)atFunction.Module._load(module.js:280:25)atModule.require(module.js:362: