小编use*_*652的帖子

数组:存储对象或引用

作为Java开发人员,我有以下C++问题.

如果我有类型A的对象并且我想将它们的集合存储在数组中,那么我应该只存储指向对象的指针还是更好地存储对象本身?

在我看来,最好存储指针,因为:1)通过将其指针设置为null,可以轻松删除对象2)节省空间.

c++

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

在 Jenkins 上执行 Google 测试(简单)

我设法在 Jenkins 上安装了 Google Test。

我使用 cmake 来构建测试可执行文件,一切正常。

我现在的愚蠢问题是:

如何自动让 Jenkins 运行谷歌测试?我必须为此编写一个shell脚本还是有更好的方法?


我知道可以在 ant 中运行它,但由于我使用 cmake,我怀疑这是正确的方法。

build googletest jenkins

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

将整个标头内容添加到Doxygen组

由于它似乎是一项常见的任务,我很难相信如果我想将头文件中的所有doxygen注释添加到组中,我必须这样做

foo.h
 /**
 *\addtogroup fooGroup
 * @{
 */
...
...

...
/**@}*/
Run Code Online (Sandbox Code Playgroud)

有没有办法让这项工作没有@ {评论?

doxygen

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

指针和数组

为什么指针数组"等价"在以下情况下不起作用?

void foo(int** x) {
  cout << x[0][1];
}

int main( ) {
  int a[2][2] = {{1,2},{2,3}};
  foo(a);  
}
Run Code Online (Sandbox Code Playgroud)

谢谢

c++ arrays pointers c++11

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

存储可变参数模板的模板参数数

在以下示例中

template <size_t... Entries>
struct StaticArray
{
  enum {N = sizeof...(Entries)};
  size_t array[N] = {Entries...};
};
Run Code Online (Sandbox Code Playgroud)

存储条目的数量enum似乎更像是对我的黑客攻击.

这真的是存储条目数量的文本书方式还是有更简洁的方法来做到这一点?

c++ variadic-templates c++11

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

将对象或指针存储在矢量中

我在这里问了一个非常相似的问题,但由于这是一个基本问题,我想更准确地陈述我的(新)问题.

假设我有一个非常复杂的A类,A的每个实例都存储在多个容器中,例如向量,队列,......

即使在静态设置中,也意味着对象一次被添加到容器中,不会被删除也不会被修改:
容器现在是否包含指向对象或对象本身的指针?

c++ oop

3
推荐指数
1
解决办法
1672
查看次数

插入std :: map <int,std :: vector <int >>的简短函数

我发现自己经常处于编写以下代码的情况:

std::map<int, std::vector<int>> dict;

void insert(int key, int val) {
  if (dict.find(key) == dict.end()) {
    dict[key] = std::vector<int>();
  }
  dict[key].push_back(val)
}
Run Code Online (Sandbox Code Playgroud)

编写这个插入函数是否有一种不那么冗长的方式(在C++ 11中)?

c++ insert stdmap stdvector c++11

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

std :: sort降序与运算符重载

我有一个std::vector对象,我重载了<运算符.

我如何使用std::sort降序排序(无需编写我自己的Comparator)?

c++ sorting std c++11

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

终止在无限循环中运行的std :: thread

如何在Bar的析构函数中终止我的旋转线程(无需等到线程从睡眠中醒来)?

class Bar {

public:

Bar() : thread(&Bar:foo, this) {
}

~Bar() { // terminate thread here}



...

void foo() {
  while (true) {
     std::this_thread::sleep_for(
     std::chrono::seconds(LONG_PERIOD));

    //do stuff//
   }

}

private:
  std::thread thread;

};
Run Code Online (Sandbox Code Playgroud)

c++ multithreading c++11

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

模板推导评估相同函数的重载

我有以下课程:

template <typename T>
struct Foo {
  void bar(double val);
  void bar(T val);
  T m_val;
};
Run Code Online (Sandbox Code Playgroud)

现在问题是如果我实例化一个类型的对象Foo<double>,我得到两个具有相同签名的重载函数.

它有什么办法吗?

我的问题是我确实需要处理特殊val类型的情况double.此外,bar非双重类型的参数没有共同的超类.

c++ templates overloading c++11

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