首页 文章
  • -4 votes
     answers
     views

    在std :: vector中查找项目

    我想检查一个元素是否存在于向量中,所以我可以处理每个案例 . 我遇到了这个公式: #include <algorithm> if ( std::find(vector.begin(), vector.end(), item) != vector.end() ) do_this(); else do that(); 我不明白为什么我们最后需要vector.end(),is...
  • 388 votes
     answers
     views

    “STL”和“C标准库”之间有什么区别?

    有人提请我注意,我声称STL术语被用来引用整个C标准库,而不是从SGI STL中获取的部分 . (...)它指的是“STL”,尽管很少有人仍然使用STL(在SGI设计) . C标准库的部分内容基于STL的部分内容,许多人(包括几位作者和臭名昭着的错误cplusplus.com)仍然将这些部分称为“STL” . 但是,这是不准确的;事实上,C标准从未提及“STL”,两者之间存在内容差异 . (...
  • 6 votes
     answers
     views

    打印东西时为什么不保留订单,首先是cerr然后是cout?

    我有带有 Xubuntu 14.04的g版本4.8.4编译器 . 在我的OpenCV代码(用Eclipse CDT编写)中,我连续写了以下三行: /* Some codes here*/ cerr << "No match found. # of false positives: " << falsePositives << endl; c...
  • 0 votes
     answers
     views

    std :: vector <std :: vector <Vertex >> vertex_matrix;在这方面没有申明

    在一个.cpp文件中,我声明并实现了一个“Vertex”类 . 然后我声明并实现第二个类“ThreeDimensionObject” . 在ThreeDimensionObject内部,它有一个公共成员std :: vector&gt; vertex_matrix; 我做了导入 . 该项目在xCode IDE上正常运行,g提示我“错误:'vertex_matrix'未在此范围内声明” . 我该如何...
  • 95 votes
     answers
     views

    C 11中是否有一个范围类用于基于范围的循环?

    我发现自己刚刚写了这篇文章: template &lt;long int T_begin, long int T_end&gt; class range_class { public: class iterator { friend class range_class; public: long int operator *() const { return...
  • 533 votes
     answers
     views

    如何确定某个项目是否存在于std :: vector中?

    我想要做的就是检查一个元素是否存在于向量中,所以我可以处理每个案例 . if ( item_present ) do_this(); else do_that();
  • -2 votes
     answers
     views

    总是“使用命名空间std”? [重复]

    这个问题在这里已有答案: Why is “using namespace std” considered bad practice? 35个答案 我能理解为什么我们应该在代码中使用这一行 . 这样,您就不必编写std :: cout或std :: cin等 . 对于std :: string,如果我包含在c代码中,编译器是否会感到困惑?对于下面的变量str,它被认为是cstring类型的字符串...
  • 4 votes
     answers
     views

    std :: condition_variable ::等待谓词

    在std :: condition_variable的文档中,有一个wait()重载作为参数作为谓词函数 . 该函数将一直等到谓词函数为真的第一个wake_up . 在documentation 据说这相当于: while (!pred()) { wait(lock); } 但是也: 此异常可用于在等待特定条件变为真时忽略虚假唤醒 . 注意,在进入此方法之前必须获取锁定,在等待(锁定)...
  • 1 votes
     answers
     views

    无法向线程池提交返回void的callble对象,但只能提交返回值的可调用对象

    我正在研究书中的一个线程池C++ Cuncerrency in Action by Anthony Willimas这个线程池有一个提交调用,它作为任务可调用对象返回一个值并返回一个 std::future 句柄,我设法构建使用它的应用程序 . 但我甚至可以编译 . 我在 future Headers 中得到了这些错误: error C2182: '_Get_value' : illegal u...
  • 9 votes
     answers
     views

    为什么std ::由有经验的编码人员使用而不是使用命名空间std;? [重复]

    可能重复:为什么'使用命名空间std;'被认为是C的坏习惯? 有一天,当我问一个问题,有人回答说如果有人问一个问题,告诉他们正确的做法,而不是 using namespace std; ,我认为这有点奇怪,因为 using namespace std; 更容易,但我想我'm failing right now as I am a '初学者'编码你们知道的更好 所以我想我的问题是:为什么 std...
  • 214 votes
     answers
     views

    你可以在迭代它时从std :: list中删除元素吗?

    我有代码看起来像这样: for (std::list&lt;item*&gt;::iterator i=items.begin();i!=items.end();i++) { bool isActive = (*i)-&gt;update(); //if (!isActive) // items.remove(*i); //else other_...
  • -2 votes
     answers
     views

    如何获取字符串的用户输入然后是int?

    我有一个数据库类,它是一个包含许多对象的数组 . 该函数将从用户获取一些输入,包括字符串和整数 例如: std::cout &lt;&lt; &quot;Enter first name: &quot;; std::cin.ignore(std::numeric_limits&lt;std::streamsize&gt;::max(), '\n'); std::getline(std::cin, ...
  • 0 votes
     answers
     views

    我怎样才能确切地看到std :: cin输入缓冲区中的内容?

    我遇到的问题是,当一个人在控制台中键入内容时,我想要确切地看到输入缓冲区中的内容我知道如何查看它的唯一方法是使用std :: cin :: getline()或std: :getline(),但我认为这两个都写入char指针或std :: string对象,具体取决于系统特定的行尾字符是否合适 . 例如,我认为在Windows上如果你在控制台上按Enter键它会输入'\ r''\ n',但是当我尝...
  • 1 votes
     answers
     views

    c set输出的元素多于它包含的元素

    我有一个非常大的字符串集,我想找到唯一字符串的子集,我正在使用set容器 . 这些方法转到MySQL数据库,引入一组新的字符串并尝试将它们添加到一个集合中 . 我检查插入的返回以确定是否添加了字符串(第一次出现)或者它已经存在 . #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;fstream&gt; #include ...
  • 9 votes
     answers
     views

    根据插入时间从std :: map中删除元素

    我需要根据插入时间(或其他更高效的东西)从std :: map中删除元素 . Map 可能包含数千个元素,如果我存储时间并迭代 Map 以检查每个元素的时间,它可能最终会非常耗时 . 有没有人知道如何在std :: map老化时擦除它们?
  • 0 votes
     answers
     views

    使用向量用C求解Eratosthenes的Sieve并收到异常的错误信息

    在今天,我问了一个关于用2D阵列实现Eratosthenes筛子的问题,并且有几个人告诉我使用向量代替 . 唯一的问题是我不知道如何在C中使用向量 . 我今天使用向量而不是2D数组重写了我的程序,直到程序结束时我才收到以下错误: sieve.h:在函数'void printPrimes(std :: vector *,int)':sieve.h:42:20:error:'std :: cout ...
  • 4 votes
     answers
     views

    C:使用“std”时“架构x86_64的未定义符号”错误

    我是一名新的C程序员,我正在尝试运行一个简单的&lt;10行程序作为系统测试 . 我的操作系统是OSX 10.9.5,我的gcc版本是4.2.1 . 我已经创建了一个文件“test.cpp”,我正在使用gcc在命令行上编译 . 命令是“gcc test.cpp -o test” . 然后我跑“./test” . (是的,这是听起来基本的过程 . )文件如下: #include &lt;iostr...
  • -3 votes
     answers
     views

    编译器问题:iostream不工作

    当我用g 5.1.1编译我的c代码时,它说 “narc05b.cpp:在函数'int main()'中:anarc05b.cpp:5:3:错误:'cout'未在此范围内声明cout &lt;&lt;”hello \ n“; ^ anarc05b.cpp:5: 3:注意:建议替代:在anarc05b.cpp中包含的文件中:1:0:/ usr / include / c /5.1.1/iostrea...
  • 67 votes
     answers
     views

    为什么std :: map没有const访问器?

    std :: map上[]运算符的声明是这样的: T&amp; operator[] ( const key_type&amp; x ); 有没有理由不是这个? T&amp; operator[] ( const key_type&amp; x ); const T&amp; operator[] const ( const key_type&amp; x ); 因为只要您需要在const方法...
  • 0 votes
     answers
     views

    std :: map中的重复项

    我们的产品中有一段代码,它使用std :: map来存储数据,其关键是boost :: make_tuple(std :: string,std :: string) . 在调试问题时,我发现在映射中插入键值对后,在映射中找到该键导致为负,并且另一次尝试插入键值1对成功 . 这说明了操作顺序: Flow A: Key k = boost::make_tuple(str1, str2); bool...
  • 5 votes
     answers
     views

    带有指向数据成员的指针的std :: thread

    我正在阅读std::thread documentation at cppreference(并不总是100%准确,我知道)并注意到 std::thread 的行为的以下定义,当传递&quot;pointer-to-data-member&quot;(不是&quot;pointer-to-member-function&quot;)作为其第一个参数( f )并且所需类的对象作为其第二个参数(复制到...
  • 4 votes
     answers
     views

    标准矢量调整大小

    我有一些std :: vector,我必须使用一些默认值来调整它 . 这是代码: static int Counter = 0; class Data { /* ... */ Data() { Counter++; std::cout &lt;&lt; Counter &lt;&lt; std::endl; } }; std::vector&lt;D...
  • 46 votes
     answers
     views

    C std :: tuple破坏顺序

    有一条规则说明std :: tuple的成员被破坏了吗? 例如,如果 Function1 将 std::tuple&lt;std::unique_ptr&lt;ClassA&gt;, std::unique_ptr&lt;ClassB&gt;&gt; 返回到 Function2 ,那么我可以确定(当 Function2 的范围被保留时)第二个成员引用的 ClassB 实例在第一个成员引用的 Cla...
  • -1 votes
     answers
     views

    pthread_cancel与std :: condition_variable等待?

    我有许多使用 std::condition_variable 的 wait 函数运行事件队列的pthread . 我希望能够将 pthread_cancel 发送到这些工作线程,然后成功 pthread_join . 但是,我注意到 pthread_join 挂起,整个程序陷入僵局 . 有办法做我想做的事吗? 下面是我的一个工作线程循环的示例(此函数作为 pthread_create 的参数给出...
  • 8 votes
     answers
     views

    'sqrt'不是'std'的成员

    我在linux中编译我的程序 - 它有以下几行: std::sqrt((double)num); 在Windows上没关系,但在Linux上我得到'sqrt'不是'std'的成员我有一个包含math.h 有什么问题吗?
  • 3 votes
     answers
     views

    使用std :: optional将std :: vector <int>传递给函数

    我不清楚是否通过引用将一个可选的int向量传递给函数的正确代码是: void test_func(std::optional&lt;std::vector&lt;int&gt;&amp;&gt; vec) 要么 void test_func(std::optional&lt;std::vector&lt;int&gt;&gt;&amp; vec) 任何帮助非常感谢 .
  • 2185 votes
     answers
     views

    为什么“使用命名空间std”被认为是不好的做法?

    其他人告诉我,在代码中编写 using namespace std 是错误的,我应该直接使用 std::cout 和 std::cin . 为什么 using namespace std 被认为是一种不好的做法?是否效率低或者是否存在声明模糊变量(与 std 命名空间中的函数具有相同名称的变量)的风险?它会影响性能吗?
  • 1 votes
     answers
     views

    min_element错误

    我不是编码器,所以可能很容易 . 我有一个Point类的向量,我想找到AABB矩形: min x - min y min x - max y max x - min y max x - max y 我已经完成了一个for循环,保存了min和max(一次为x,一次为y),并用一些ifs更新每次迭代的值 . 但我确信在std或boost中有更聪明的东西 . 例如我刚...
  • -3 votes
     answers
     views

    const char *在c中的std :: map中重复数据

    我有一个罕见的问题 . 我已经将一个结构存储到std :: map中,插入了第一个数据并正常运行,但是当我尝试存储多个结构数据时,所有 const char* 的所有 const char* 值都在结构内部丢失并被替换用新数据 . 我恢复了代码: struct Emitter{ . . const char * name; const char * file; } Emitter metad...
  • 4 votes
     answers
     views

    C 11绑定std :: function vs存储元组和解包

    首先,我对C 11还是比较新的,所以如果我错过任何东西,请原谅我的疏忽 . 所以我要做的是基本上调用函数传递函数和该函数的任意参数#,将其存储起来然后稍后异步调用它 . 而且似乎有两个主要选项: 使用std :: bind将std :: function绑定到其参数(使用variadic模板获取),然后再调用它 将参数包转换为元组,存储和std :: function,然后再次将元组解包为...

热门问题