std相关内容
我正在尝试使用我为排序定义的函数创建一个 std::set,但我收到错误:“错误:函数“GFX::MeshCompare"不是类型名称" 网格.h 命名空间 GFX{结构体{[...]};内联 bool MeshCompare(const Mesh& a, const Mesh& b){返回 ( (a.pTech
..
我有一个从中读取的文件,它包含一堆行,每行都有不同数量的整数,我无法将其拆分为整数向量的向量. 这是我当前的代码. std::vector读行(){std::vector整数;int提取_int;while((const char*)std::cin.peek() != "\n" && std::cin.peek() != -1){std::cin >>提取_int;ints.push_b
..
我正在使用 boost 几何库来比较两个不同的多边形.具体来说,我正在使用 equals algorithm 以查看两个多边形是否全等(相等尺寸). 问题是算法的容差太紧,两个应该全等的多边形(经过一些浮点运算后)不在算法定义的容差范围内. 我几乎可以肯定该库正在使用 std::numeric_limits::epsilon() (~2.22e-16) 来建立容差.我想
..
我正在尝试为 std::vector 重载运算符 + 和 +=,而我所做的是 命名空间标准{模板向量 T运算符+(向量 x,向量 y){向量 T结果;结果.reserve(x.size());for (size_t i = 0; i
..
假设我们有多个子进程,如下所示,其中一些结果实时打印到 sys.stdout 或 sys.stderr. proc1 = subprocess.Popen(['cmd1'],环境= venv1,标准输出=sys.stdout,stderr=sys.stderr,)proc2 = subprocess.Popen(['cmd2'],环境= venv2,标准输出=sys.stdout,stderr=
..
如何为多映射中的特定键选择随机元素.例如: multimap地图;map.insert(pair("哺乳动物", "老虎"));map.insert(pair("Mammal", "Chicken"));map.insert(pair("Mammal", "Fox"));map.insert(pair("鱼","小丑鱼"));map.insert(pair("Fish", "Ray")); 在
..
我需要从磁盘解析一个 txt 文件.所以我首先做了一个例子,来测试正则表达式. 这是我的示例代码: std::string txt("段落:\r\n这是文本文件\r\ni只需要这个数据\r\n不是这个");std::smatch m;std::regex rt("段落:([\\S\\s](?=notthis))");std::regex_search(txt, m, rt);std::co
..
我知道有功能 string::find_last_of 但我想处理一大块 char* 数据.我不想将 char* 分配给字符串. 我知道有一个标准函数 std::find 但它只能在正序列上找到 char* .有没有这样的方法可以逆序查找?如果不在 std 中,有没有办法提升? 解决方案 std::find_end() 在 [first, last) 范围内搜索元素 [
..
我知道有很多类似的问题,但我看到了它们,但没有一个对我有帮助,我想是因为我的问题有点不同,同时也很奇怪. 我提出了另一个问题,一位成员回答了我,但他没有使用类,而是使用了结构.它运行良好,但是当我尝试将它作为类使用相同的逻辑时,就会发生这种情况,错误: 错误:无法将 '{{"foo", "bar"}}' 从 '' 转换为 'B' 我试过了,但我不知道发生了什么. #includ
..
我有 std::vector 包含我自己的类,我必须访问它的函数和空值. A 类{私人的:内部变量;向量vec;民众:void setVar(int i) { var = i;}void setVec(vector a) { vec = a;}}; 我也有返回函数,但我懒得输入它们.我已经包含了所有必要的文件. int main(){向量 Avec;for (int i = 0; i tmp
..
我正在尝试按照此处的 node.js 文档包装用于 javascript 的 C++ 对象:https://nodejs.org/api/addons.html#addons_wrapping_c_objects 当我的对象“AnObject"只有数字属性,即“int32_t age;"时,插件可以无误地构建,并且可以正常工作. 当我添加属性“std::string name;"时对于
..
你好,我正在写这个方法.我希望它从给定的缓冲区中提取给定位置的一部分.我有一个这样的字符串 something=one;something=two 我想得到“one" 这是我的想法: static std::string Utils::getHeader( unsigned char * buffer){std::string *str = new std::string(buffer);
..
如果我不断向 unordered_map 添加值,那么每次元素数量超过 bucket_count()(假设 max_load_factor = 1)时都会发生重新散列. 我很困惑的是重新散列后的桶大小. #include #include int main() {std::unordered_mapmp;for (size_t i = 0; i 输出 3 7 17 37 79 167
..
我注意到对于我测试过的每个系统,std::chrono::high_resolution_clock::period::num = 1.是否存在任何系统(嵌入式、桌面、移动或其他)恰好是其他数字?(在这样的系统上,1 秒不能用刻度表示.) 解决方案 我知道 std::chrono::high_resolution_clock 的三种实现:Visual Studio、gcc 和 clang(
..
我最近从 Microsoft 编译器切换到 GCC.在许多事情中,我注意到 std::make_unique 变得不可用.这显然是因为 make_unique 不是 C++11 标准的一部分,而微软恰好将其作为扩展包含在内. 我们计划很快转移到 C++14,但同时我写了这个“填充"函数,并将它放入 std. 命名空间标准{templateunique_ptrmake_unique(TArg
..
我使用的库采用由 fftw_malloc 分配的指针,但我的数据为 std::complex*. 什么是最有效的分配和释放内存? #include #include int main(){std::complex* p1, *p2;std::vector *) fftw_malloc( sizeof(std::complex) * N);p2 = new std::complex[N];v
..
我是 C++ 和 Qt 的新手.我已经和 Qt Creator 混了几天,真正让我震惊的是 GUI 组件如何只接受 const QString& 而不是 string 或std::wstring.为了与此保持一致,我一直试图从我的大多数函数调用中接受和返回 QString,但是我发现自己在与 std::string 之间转换大量使用大多数标准图书馆设施. 我的问题是,如果 std::stri
..
标题说明了一切.包含后,longjmp和jmp_buf都在std命名空间中,但setjmp 不是.我在 MinGW4.5 和 MSVC10 上验证了这一点.在查看 标头后,我无法弄清楚这个选择的原因.我一直假设每个 文件都将 包装在 std 命名空间中. 我错了吗?setjmp 特殊情况背后的基本原理是什么?请赐教! 注意:我知道在 C++ 中滥用 setjmp/l
..
我遇到过这种模式的多个实例(boost::filesystem 仅用作示例): boost::filesystem::path path = ...;someFunctionTakingCStrings(path.string().c_str()); 哪里 const std::string path::string() const{std::string tmp = ...返回 tmp;}
..
我在使用标准正则表达式时遇到了麻烦.我无法使问号量词起作用.对 regex_match 的调用将始终返回 0. 我也尝试过使用 {0,1},它的行为也与我预期的不同:它的行为类似于 + 量词. 这是我的代码: #include #include 使用命名空间标准;int main(int argc, char **argv){正则表达式 e1("ab?c");cout
..