小编jog*_*pan的帖子

`constexpr`和`const`之间的区别

constexpr和之间有什么区别const

  • 我什么时候才能只使用其中一个?
  • 我何时可以同时使用这两种方法?如何选择?

c++ const constexpr c++11

540
推荐指数
9
解决办法
19万
查看次数

显式实例化 - 何时使用?

几个星期休息之后,我正在尝试使用David Vandevoorde和Nicolai M. Josuttis 所着的模板 - 完整指南来扩展和扩展我的模板知识,我现在想要了解的是模板的显式实例化.

我实际上并没有这样的机制问题,但我无法想象我想要或想要使用此功能的情况.如果有人能向我解释,我将不仅仅是感激.

c++ templates

73
推荐指数
3
解决办法
5万
查看次数

后缀树和尝试.有什么不同?

我正在阅读Tries通常称为前缀树和Suffix Trees.
虽然我找到了代码,但Trie我找不到一个例子Suffix Tree.此外,我感觉构建a的代码与a的代码Trie相同,Suffix Tree唯一的区别是在前一种情况下我们存储前缀但在后面的后缀中.
这是真的?任何人都可以帮我解决这个问题吗?一个示例代码将是很好的帮助!

algorithm suffix-tree trie data-structures

70
推荐指数
2
解决办法
3万
查看次数

在C++中检查std :: vector <string>是否包含某个值

是否有内置函数告诉我我的矢量包含某个元素,例如

std::vector<string> v;
v.push_back("abc");
v.push_back("xyz");

if (v.contains("abc")) // I am looking for one such feature, is there any
                       // such function or i need to loop through whole vector?
Run Code Online (Sandbox Code Playgroud)

c++ vector std stdvector

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

如何在C++中初始化静态const成员?

是否可以在构造函数外部初始化静态const值?可以在找到成员声明的同一地点进行初始化吗?

class A {
private:
  static const int a = 4;
  /*...*/
};
Run Code Online (Sandbox Code Playgroud)

c++ static

61
推荐指数
4
解决办法
8万
查看次数

什么是_GLIBCXX_USE_NANOSLEEP?

名为_GLIBCXX_USE_NANOSLEEP的预处理器宏出现在两个标准头文件中:

  • C++/4.7.1/x86_64的未知-Linux的GNU /比特/ C++的config.h
  • C++/4.7.1 /线程

在GCC 4.7.1(Linux,64位)的默认构建中,c ++ config.h包含的唯一内容是此注释:

/* Defined if nanosleep is available. */
/* #undef _GLIBCXX_USE_NANOSLEEP */
Run Code Online (Sandbox Code Playgroud)

而在线程中,定义std::this_thread::sleep_for()std::this_thread::sleep_until()依赖于要定义的宏.如果没有定义,那么两个函数 - 尽管C++标准都要求 - 也不会被定义.

在我的系统(glibc 2.15)上,虽然nanosleep()函数(声明在ctime)存在并且可操作,但未定义宏.

我想知道这是什么以及如何处理它.特别:

  • 在构建GCC以默认激活此宏时是否应该使用配置选项,如此帖所示?(我在构建过程在线文档中找不到任何内容.)
  • nanosleep()函数和宏之间真的存在关联吗?nanosleep()in ctime/ 的声明time.h似乎不依赖于或定义宏.
  • 在我自己的头文件中定义宏或-D在命令行中作为选项(如相关问题中的建议)是否存在任何特定风险?如果我在一个nanosleep()不可用的系统上执行此操作会怎么样?我该如何找到它?

从GCC 4.8开始更新std::this_thread::sleep_for(),libstdc ++中会自动包含支持等.不再需要配置标志.从GCC 4.8更改日志:

this_thread :: sleep_for(),this_thread :: sleep_until()和this_thread :: yield()的定义不需要配置选项--enable-libstdcxx-time; …

c++ gcc sleep glibc

44
推荐指数
1
解决办法
8109
查看次数

与定义的类相同类型的静态constexpr成员

我希望C类有一个类型为C的静态constexpr成员.这在C++ 11中是否可行?

尝试1:

struct Foo {
    constexpr Foo() {}
    static constexpr Foo f = Foo();
};
constexpr Foo Foo::f;
Run Code Online (Sandbox Code Playgroud)

g ++ 4.7.0说:'无效使用不完整类型'指的是Foo()调用.

尝试2:

struct Foo {
    constexpr Foo() {}
    static constexpr Foo f;
};
constexpr Foo Foo::f = Foo();
Run Code Online (Sandbox Code Playgroud)

现在的问题是在类定义中缺少constexpr成员的初始化器f.

尝试3:

struct Foo {
    constexpr Foo() {}
    static const Foo f;
};
constexpr Foo Foo::f = Foo();
Run Code Online (Sandbox Code Playgroud)

现在g ++抱怨重新声明Foo::f不同的内容constexpr.

c++ constexpr c++11

38
推荐指数
3
解决办法
4770
查看次数

获取C++基于范围的for循环中当前元素的索引

我的代码如下:

std::cin >> str;
for ( char c : str )
    if ( c == 'b' ) vector.push_back(i) //while i is the index of c in str
Run Code Online (Sandbox Code Playgroud)

这可行吗?或者我将不得不与老派进行循环?

c++ iteration for-loop c++11

32
推荐指数
5
解决办法
3万
查看次数

LibSVM和LibLinear之间有什么区别

libsvmliblinear都是实现支持向量机的软件库.有什么不同?这些差异如何使liblinear比libsvm更快?

algorithm machine-learning svm libsvm

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

在typedef结构中重载运算符(c ++)

我想创建一个名为pos(从位置)的typedef结构来存储坐标x和y.我试图为这个结构重载一些运算符,但它不编译.

typedef struct {
    int x;
    int y;

    inline pos operator=(pos a) {
        x=a.x;
        y=a.y;
        return a;
    }

    inline pos operator+(pos a) {
        return {a.x+x,a.y+y};
    }

    inline bool operator==(pos a) {
       if (a.x==x && a.y== y)
          return true;
       else
          return false;
    }
} pos;
Run Code Online (Sandbox Code Playgroud)

我也想知道这个之间的区别:

inline bool operator==(pos a) {
    if(a.x==x && a.y== y)
       return true;
      else
       return false;
}
Run Code Online (Sandbox Code Playgroud)

还有这个:

bool operator==(pos a) const {
      if(a.x==x && a.y== y)
         return true;
      else
         return false;
}
Run Code Online (Sandbox Code Playgroud)

c++ struct typedef operator-keyword

27
推荐指数
3
解决办法
11万
查看次数