小编fre*_*low的帖子

非捕获组是多余的吗?

可选的非捕获组是多余的吗?

是以下正则表达式:

(?:wo)?men
Run Code Online (Sandbox Code Playgroud)

语义上等同于以下正则表达式?

(wo)?men
Run Code Online (Sandbox Code Playgroud)

java regex capture-group

5
推荐指数
1
解决办法
573
查看次数

原始字符串中的换行符是否依赖平台?

原始字符串中的换行符是否依赖平台?

val a = "one\ntwo";

val b = """one
two"""

println(a == b)
Run Code Online (Sandbox Code Playgroud)

换句话说,println上面的陈述是否保证打印true

string cross-platform line-breaks rawstring kotlin

5
推荐指数
1
解决办法
1233
查看次数

通过boost :: bind从向量中删除字符串

我试图从矢量中删除短字符串.

std::vector<std::string> vec;

// ...

vec.erase(std::remove_if(vec.begin(),
                         vec.end(),
                         boost::bind(std::less<size_t>(),
                                     boost::bind(&std::string::length, _1),
                                     5),
          vec.end());
Run Code Online (Sandbox Code Playgroud)

编译器会发出一个非常大的错误消息:

qwer.cpp:20: error: no matching function for call to 'remove_if(__gnu_cxx::__nor
mal_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char
> >*, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator
<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::al
locator<char> > > > >, __gnu_cxx::__normal_iterator<std::basic_string<char, std:
:char_traits<char>, std::allocator<char> >*, std::vector<std::basic_string<char,
 std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_strin
g<char, std::char_traits<char>, std::allocator<char> > > > >, boost::_bi::bind_t
<boost::_bi::unspecified, std::less<unsigned int>, boost::_bi::list2<boost::_bi:
:bind_t<unsigned int, boost::_mfi::cmf0<unsigned int, std::basic_string<char, st
d::char_traits<char>, std::allocator<char> > >, boost::_bi::list1<boost::arg<1>
> >, boost::_bi::value<int> > >, __gnu_cxx::__normal_iterator<std::basic_string<
char, …
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-bind

4
推荐指数
1
解决办法
1189
查看次数

保留容量会产生两次分配还是仅产生一次?

std::vector<T> vec;   // line #1
vec.reserve(100);     // line #2
Run Code Online (Sandbox Code Playgroud)

我想知道第1行是否会触发一个小的分配(例如,内存为10 Ts),或者第一次分配是否发生在第2行.标准是否对此有所说明?

c++ memory-management stl vector

4
推荐指数
1
解决办法
124
查看次数

关于长而长的双倍

从什么时候开始他们成为标准C++的一部分?我认为long long是一个C++ 0x功能,是吗?怎么样long double?那是在C++ 98还是C++ 03?

c++ standards primitive-types long-integer

4
推荐指数
1
解决办法
2648
查看次数

为什么我在没有调试的情况下启动调试版本?

在没有调试的情况下启动调试版本有什么好处(而不是没有调试的版本构建)?当我调试发布版本时(与调试版本调试相反),我会错过什么?

c++ debugging visual-studio visual-c++

4
推荐指数
1
解决办法
389
查看次数

何时为类创建v表?

我知道,如何实现虚函数调用解析不是C++标准的一部分,也不是说有关vptr或v-table的任何内容,但请允许我在这里提出这个问题.

我听说v-table是编译器用来实现虚函数调用解析的常用技术.我对此的理解是每个进程每个类只需要一个虚拟表.

我想知道的是,什么时候为一个类创建了v-table?
是否在第一次在进程空间中创建给定类型(需要v表)的类时?
在该进程空间中所有其他随后创建的该类型的对象是指已创建的v表?
什么时候会删除这个v表?

我很抱歉,如果这是太主观或讨论类型的问题,但这些问题在我的脑海中徘徊了一段时间,我觉得它可以在这里问.

c++ virtual-functions vptr

4
推荐指数
1
解决办法
2088
查看次数

我可以整齐地计算多维数据集列表吗?

可以使用更高阶函数简化以下函数,Monads或者你有什么用?

cube list = [(x, y, z) | x <- list, y <- list, z <- list]
Run Code Online (Sandbox Code Playgroud)

该函数只是创建列表元素的所有三重排列的列表.例如:

> cube [1..2]
[(1,1,1),(1,1,2),(1,2,1),(1,2,2),(2,1,1),(2,1,2),(2,2,1),(2,2,2)]
Run Code Online (Sandbox Code Playgroud)

haskell list-comprehension

4
推荐指数
4
解决办法
418
查看次数

为什么所有对象的类的静态成员都相同?

为什么我们不为不同的对象提供不同的静态变量副本?

c++ static class

4
推荐指数
2
解决办法
206
查看次数

我如何实现array :: max_size()?

我正在建立自己的array<T, n>课程模板,用于娱乐和教育.C++ 0x标准草案将max_size()所有容器的成员函数指定为distance(begin(), end())"对于最大可能的容器".如何为数组实现此成员函数?我只是简单地返回std::numeric_limits<std::size_t>::max(),还是结果取决于元素类型?


嗯,std::array从当前的g ++和boost::array返回n来自max_size():

#include <array>
#include <boost/array.hpp>
#include <iostream>

int main()
{
    std::array<int, 11> foo;
    std::cout << foo.max_size() << std::endl;   // prints 11

    boost::array<int, 11> bar;
    std::cout << bar.max_size() << std::endl;   // prints 11
}
Run Code Online (Sandbox Code Playgroud)

c++ arrays stl aggregate c++11

4
推荐指数
1
解决办法
688
查看次数