小编Pot*_*ito的帖子

使用字符串中的名称创建变量

让我们假设我想创建10个变量,如下所示:

x1 = 1;
x2 = 2;
x3 = 3;
x4 = 4;
.
.
xi = i;
Run Code Online (Sandbox Code Playgroud)

这是我打算做的简化版本.基本上我只想通过以自动方式创建这些变量来保存代码行.是否有可能在Matlab中构造变量名?我的例子中的模式是["x", num2str(i)].但是我找不到用这个名字创建变量的方法.

string variables matlab variable-names

17
推荐指数
2
解决办法
6万
查看次数

转换c_str()仅适用于短字符串

我在C++中使用C库并编写了一个包装器.有一次,我需要将一个转换std::string为一个c风格的字符串.有一个带有函数的类,它返回一个字符串.如果字符串很短,则转换返回的字符串,否则不起作用.这是一个简单且简化的示例,说明了该问题:

#include <iostream>
#include <string>

class StringBox {
public:
  std::string getString() const { return text_; }

  StringBox(std::string text) : text_(text){};

private:
  std::string text_;
};

int main(int argc, char **argv) {
  const unsigned char *castString = NULL;
  std::string someString = "I am a loooooooooooooooooong string";  // Won't work
  // std::string someString = "hello";  // This one works

  StringBox box(someString);

  castString = (const unsigned char *)box.getString().c_str();
  std::cout << "castString: " << castString << std::endl;

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

执行上面的文件将其打印到控制台:

castString:

而如果我交换评论 …

c++ string pointers casting c++11

7
推荐指数
5
解决办法
618
查看次数

Sphinx + Doxygen + Breathe:我如何获得类似Google的Ceres Solver的文档?

我正在研究一个C++项目,并且真的爱上了Sphinx文档构建系统.我设法设置Doxygen和Breathe来生成并向Sphinx提供C++描述.

我无法弄清楚Google的Ceres Solver文档是如何完成的.例如,它们的API引用包含类名,后跟大量文本,有时甚至包含前面链接中所示的代码块示例.有没有办法在源文件中编写Doxygen文档并实现这一目标?

另一个例子是这个类文档,它有大约两页的文本.我不知何故怀疑所有这些文本都作为Doxygen评论位于源文件中.我觉得所有额外的文本都写在文档的重组文本源中,而c ++源文件中没有任何内容.但那么使用doxygen和呼吸有什么意义呢......

或者有不同的问题,我应该在哪里提供有关代码的高级信息?我的意思是我可以记录class1class2在它们的来源,但地方我需要解释如何两者互动,一起使用.这就是Ceres Solver的文档在我看来很好的做法.

或者,您可以使用Sphinx + Doxygen + Breathe管道和开源文档向我指向C++项目.然后我可以亲眼看看如何做这些事情.不幸的是我不知道任何项目.

c++ documentation doxygen python-sphinx

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