小编NoS*_*tAl的帖子

如何获得并不总是存在的捕获组?

我有一个类似的正则表达式

(\d\d\d)(\d\d\d)(\.\d\d){0,1}
Run Code Online (Sandbox Code Playgroud)

当它匹配时,我可以很容易地得到前两组,但我如何检查第三组是否发生了0或1次.

另一个小问题:在(\.\d\d)我唯一关心的\d\d部分,任何其他方式告诉正则表达式\.\d\d 需要出现0或1次,但我想只捕获\d\d部分?

这是基于解析a的问题

HHMMSS

具有可选小数部分的字符串(因此它变为

hhmmss.ss

)...我提出\d\d\d了这个问题,所以我很清楚\d\d我在说什么.

python regex

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

为什么std :: distance不能用于const和nonconst迭代器的混合?

就像问题所说,我想知道原因.因为当我试图获得constconst迭代器之间的距离时出现错误.

vector<int> v;
auto it=v.begin();
auto cit=v.cbegin();
distance(it,cit);


no matching function for call to ‘distance(__gnu_cxx::__normal_iterator<int*, std::vector<int> >&, __gnu_cxx::__normal_iterator<const int*, std::vector<int> >&)
Run Code Online (Sandbox Code Playgroud)

从我对迭代器的有限理解,我认为没有理由不应该工作.

c++ iterator c++11

15
推荐指数
2
解决办法
5342
查看次数

如何从STL容器实例中获取元素类型?

我知道value_type,key_type ......但它们是在类型上运行,而不是在实例上运行.我试过像这样的东西:

std::set<uint64_t> mySet;   

decltype (mySet)::value_type pos;
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

编辑:我使用VS 2010.

EDIT2:这段代码的目的是得到一个类型来赋予它boost :: lexical_cast <>是否有一种解决方法可以实现这一点?我想要这样的东西:

   mySet.insert(boost::lexical_cast<decltype(mySet)::value_type>(*it));
  // it is a iterator in vector of strings
Run Code Online (Sandbox Code Playgroud)

编辑3:这有效:

mySet.insert(boost::lexical_cast<decltype(mySet)::value_type>(*it));
Run Code Online (Sandbox Code Playgroud)

c++ stl decltype c++11

15
推荐指数
2
解决办法
1万
查看次数

如何使用具有对象<int,int>向量的元素的unordered_set

我想要有类似的东西

 unordered_set<vector<pair<int,int>>> us;
Run Code Online (Sandbox Code Playgroud)

但即使没有配对:

#include <vector>
#include <unordered_set>
using namespace std;

int main() {
    unordered_set<vector<int>> um;
}
Run Code Online (Sandbox Code Playgroud)

它失败:

In file included from /usr/include/c++/4.8/bits/hashtable.h:35:0,
                 from /usr/include/c++/4.8/unordered_set:47,
                 from prog.cpp:2:
/usr/include/c++/4.8/bits/hashtable_policy.h: In instantiation of ‘struct std::__detail::_Hash_code_base<std::vector<int>, std::vector<int>, std::__detail::_Identity, std::hash<std::vector<int> >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, true>’:
/usr/include/c++/4.8/bits/hashtable_policy.h:1402:10:   required from ‘struct std::__detail::_Hashtable_base<std::vector<int>, std::vector<int>, std::__detail::_Identity, std::equal_to<std::vector<int> >, std::hash<std::vector<int> >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Hashtable_traits<true, true, true> >’
/usr/include/c++/4.8/bits/hashtable.h:174:11:   required from ‘class std::_Hashtable<std::vector<int>, std::vector<int>, std::allocator<std::vector<int> >, std::__detail::_Identity, std::equal_to<std::vector<int> >, std::hash<std::vector<int> >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >’
/usr/include/c++/4.8/bits/unordered_set.h:96:18:   required from …
Run Code Online (Sandbox Code Playgroud)

c++ unordered-map unordered-set c++11

15
推荐指数
2
解决办法
8346
查看次数

C++ struct 静态成员变量可以隐藏非类型模板参数吗?

msvc 编译以下代码(使用 /permissive- 编译器开关),clang 和 gcc不会

template<auto val>
struct S{
    static constexpr auto val = val;
};
int main() {
    return S<4>::val;
}
Run Code Online (Sandbox Code Playgroud)

我认为这只是一个 msvc 错误,但我很好奇这里的标准是否含糊不清。

c++ language-lawyer c++20 non-type-template-parameter

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

C++23 可选的一元绑定和一元返回是什么?

C++23std::optional终于得到了一些非常有用的补充。

由于我对 FP 的了解非常原始,我想知道以下两个操作的语法是什么(根据我的谷歌搜索,这是两个基本的一元操作):

  1. 单子绑定
  2. 单子回归

我最好的猜测是:

单子绑定就是变换

Monadic 返回只是 C++17std::optional 构造函数(8)

c++ monads stdoptional c++23

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

有没有办法模拟"strongdef"?

你可能知道typedef更像是C++中的别名而不是新类型,详情可以在这里看到:http: //dlang.org/cpptod.html#typedefs
我真的不喜欢链接中提出的解决方案,所以我想知道有没有更好的办法 ?

c++ typedef

13
推荐指数
1
解决办法
556
查看次数

有没有设计理由为什么std :: set没有前后成员函数?

  1. 我知道我可以使用*s.begin(),但可以使用相同的参数vector,其中有front/back
  2. 我常常使用set/map的ordered属性来获取"最小的"元素/键 - 事实上,这样做并不是拥有它的理由,只是一个例子:)

在这里,我说的是设计原因为什么front/ back将是糟糕的设计,所以请跳过委员会忘记它的明显原因......

c++ set

13
推荐指数
1
解决办法
2798
查看次数

使用unique_lock来执行可以被lock_guard更慢地完成的任务吗?

关于lock_guard存在的原因,我很困惑.是吗:

  1. 比一个更简单的界面unique_lock
  2. 性能比unique_lock
  3. 别的什么?

c++ multithreading mutex c++11

13
推荐指数
2
解决办法
1319
查看次数

STL /范围算法计算加权平均值

假设我有一个等级向量,其中等级是

struct Grade{
   const int grade;
   const int ECTS; // weight
};
Run Code Online (Sandbox Code Playgroud)

是否有STL / range-v3算法/算法使我能够做到这一点?

我知道我可以std:: accumulate用一些花哨的类型作为累加器(记住重量的总和)来做到这一点,但是我正在寻找一个更简单的替代方法(如果存在)。

c++ stl weighted-average range-v3

13
推荐指数
2
解决办法
312
查看次数