stl

    3热度

    3回答

    假设我有一组值,存储在一个std ::集: {1,2,6,8} ,我有一个搜索关键字,比如说,3。我希望把3变成一个函数,并得到第一个值大于或等于3,在这种情况下,我想得到6. 当然,map/set/multimap /中提供的find()返回这种情况下的结束迭代器。有没有类似的功能找到在这种情况下会返回6?

    2热度

    6回答

    。 std::string path(`"C:\\Path.pth`"); 但现在它不工作:现在,我通过调用我std::string用了一切工作昨天。它会抛出一个bad_alloc。看起来像'\'字符是问题。我甚至尝试使用\x5C作为它的ascii值,而不是相同的结果。 现在,我的问题是,是否有可能已经搞砸了一些#define,一些编译器选项或其他可能导致这种情况的“非代码”?我使用VS 20

    28热度

    4回答

    我大致有以下代码。这可以做得更好或更高效?也许使用std::remove_if?你可以在遍历它的时候从地图中移除物品吗?我们可以避免使用临时地图吗? typedef std::map<Action, What> Actions; static Actions _actions; bool expired(const Actions::value_type &action) { r

    17热度

    3回答

    即时通讯尝试使用STL查找算法(和min_element算法)找到向量中最小值的位置,但不是返回该位置,而是仅给出该值。例如,如果最小值是它,位置将被返回为8等。我在这里做错了什么? int value = *min_element(v2.begin(), v2.end()); cout << "min value at position " << *find(v2.begin(), v2.en

    34热度

    5回答

    我在Windows和Mac之间编写了一些跨平台的代码。 如果list :: end()“返回一个迭代器来处理列表中最后一个元素的后续位置”并且可以在向前遍历列表时检查,那么向后遍历的最佳方法是什么? 此代码workson在Mac而不是Windows上(不能超过递减第一要素): list<DVFGfxObj*>::iterator iter = m_Objs.end(); for (iter--;

    3热度

    3回答

    我听说tr1 :: result_of在Boost里面经常被使用......我想知道是否有任何好的(简单的)tr1 :: result_of用例可以在家里使用。

    3热度

    5回答

    我目前正在使用VS2005的STL的默认实现,我是not really satisfied。也许有更好的?

    23热度

    9回答

    我只是最近才发现,Visual C++ 2008(也许还有更早的版本?)支持stl lists et al上的for each语法来促进迭代。 例如: list<Object> myList; for each (Object o in myList) { o.foo(); } 我很高兴地发现它,但我很担心可移植性可怕的一天,当有人决定我需要能够编译我的代码中说,海湾合作委员

    7热度

    2回答

    我有一个链接列表,我要排序的一部分,例如: std::sort(someIterator, otherIterator, predicate); 的std ::排序需要随机访问迭代所以这种方法是行不通的。有一个专门的std :: list :: sort,但只能对整个列表进行排序。我认为我没有足够的权限去列表成员自己写一些东西。 有没有办法做到这一点,而不改变,例如,矢量?

    3热度

    3回答

    假设我有一个的hash_map和像 // i is an iterator i = hash_map.erase(i) 一个代码,但GCC的STL不擦除返回迭代器,而是一个空白。现在就像是 hash_map.erase(i++) 安全代码(即不坏的迭代器或是否有任何其他意外或不愉快的事情)?请注意这是一个hash_map。