小编czc*_*ong的帖子

boost :: tokenizer vs boost :: split

我试图将每个'^'字符上的c ++字符串解析为矢量标记.我一直使用boost :: split方法,但我现在正在编写性能关键代码,并想知道哪一个提供了更好的性能.

例如:

string message = "A^B^C^D";
vector<string> tokens;
boost::split(tokens, message, boost::is_any_of("^"));
Run Code Online (Sandbox Code Playgroud)

boost::char_separator<char> sep("^");
boost::tokenizer<boost::char_separator<char> > tokens(text, sep);
Run Code Online (Sandbox Code Playgroud)

哪一个会提供更好的性能?为什么?

c++ boost

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

不寻常的Perl语法

我必须修改Perl脚本,这是我第一次尝试理解Perl.我看到以下内容:

my %trades;
...
foreach my $row (@$rows) {
  @{$trades{pop @$row}} = @$row;
}
Run Code Online (Sandbox Code Playgroud)

我对此感到困惑,因为看起来我们正在弹出数组中的最后一项,@$row并将哈希键设置%trades为弹出的项并将值设置为@$row.

这种理解是否正确?

perl

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

如何使用boost :: optional <T>在C++中返回NULL?

我有一个函数需要在某些情况下返回NULL,还有另一个函数需要测试此函数的返回值.我知道boost :: optional但不知道如何使用语法.

以下是所述用法的简单示例:

int funct1(const string& key) {
  // use iterator to look for key in a map
  if(iterator == map.end()) {
    return NULL // need help here!
  else
    return it->second;
}

void funct2(string key) {
  if(funct1(key) == NULL) { // <-- need help here!
    // do something
  } else {
    // do something else
  }
Run Code Online (Sandbox Code Playgroud)

有人可以帮助解决语法问题吗?

谢谢.

c++ boost

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

Excel VBA,用于从特定单元格开始选择整个列

如何在特定单元格后选择整个列?

例如,我想在C24包含之后选择整个列C24, C25, ...

我使用了以下代码段但没有成功:

ActiveSheet.Range("C24", ActiveSheet.Range("C24").End(xlDown)).Select
Run Code Online (Sandbox Code Playgroud)

有人可以纠正我的错误吗?

excel vba excel-vba

8
推荐指数
2
解决办法
5万
查看次数

FileSystemObject.CreateFolder用于创建目录和子目录

我想用以下代码创建一个目录和一个子目录:

Public fso As Scripting.FileSystemObject
Set fso = New Scripting.FileSystemObject
fso.CreateFolder ("C:\Users\<my_username>\DataEntry\logs")
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建嵌套目录.在这种情况下,该DataEntry目录将不存在,所以基本上我想创建2个目录,DataEntry\logsC:\Users\<username>

如果我输入命令提示符,我可以创建该目录而mkdir没有任何问题.但是,我根本无法让VBA创建该文件夹,我得到:

Run-time error '76':

Path not found                        
Run Code Online (Sandbox Code Playgroud)

我使用的是Excel VBA 2007/2010

excel vba excel-vba

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

'memcpy'未在此范围内定义

我使用以下代码获得"memcpy未在此范围错误中定义":

CommonSessionMessage::CommonSessionMessage(const char* data, int size) 
    : m_data(new char[size]) {
  memcpy(m_data.get(), data, size);
}
Run Code Online (Sandbox Code Playgroud)

我查看了这个网站和谷歌,找不到可以解决这个问题的解决方案.

任何援助将不胜感激.

谢谢.

c++ linux memcpy

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

如何用C覆盖文件?

我试图用C覆盖FILE的内容.目前我有:

FILE* file  = fopen("filename.txt",  "r+");
fprintf(file, "%d", 1); // regardless of what's in the file, i want to clear it and put 1 in there
...
// legacy code somewhere else in the code base. can't change.
rewind(file);
fprintf(file, "%d", 2);
fflush(file);
Run Code Online (Sandbox Code Playgroud)

但是,这将无法正常工作.结果将是:

1,21

每个后续编号将写入1的开头.例如:

1,21,31,41,......

我想知道是否有办法总是覆盖文件中的内容,以便生成以下内容:

1,2,3,4 ......

任何援助将不胜感激.

谢谢.

编辑:

我已将代码更改为:

FILE* file  = fopen("filename.txt",  "w+");
Run Code Online (Sandbox Code Playgroud)

问题仍然存在.

c file-io

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

Java静态范围

我有以下代码来自Sun认证Java程序员的模拟考试:

public class Static
{ 
      static 
      { 
            int x = 5; 
      }

      static int x,y; 
      public static void main(String args[]) 
      { 
            x--; myMethod(); 
            System.out.println(x + y + ++x); 
      }

      public static void myMethod() 
      { 
             y = x++ + ++x; 
      }
}
Run Code Online (Sandbox Code Playgroud)

测试会询问您此行的结果:

System.out.println(x + y + ++x);
Run Code Online (Sandbox Code Playgroud)

答案是3,但我不完全理解为什么它是3.如果我完全忽略,我可以得到答案:

      static 
      { 
            int x = 5; 
      }
Run Code Online (Sandbox Code Playgroud)

我的问题是,上面代码片段的含义是什么?为什么它不改变变量'x'的值?

java

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

Excel VBA等效于矢量

Excel VBA是否具有与向量等效的数据结构?

我还在学习Excel VBA,不喜欢ReDim Preserve语义.但如果这是唯一的方式,那就这样吧.

那么Excel VBA 2003是否提供动态列表类型数据结构?

excel vba excel-vba

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

特有的Tcl语法

我在Tcl脚本中看到以下内容:

If { <some_condition> } {
  // code here...
} {
  // code here...
}
Run Code Online (Sandbox Code Playgroud)

我假设这是一个特殊的if-else语法案例?只想得到确认.

tcl

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

标签 统计

c++ ×3

excel ×3

excel-vba ×3

vba ×3

boost ×2

c ×1

file-io ×1

java ×1

linux ×1

memcpy ×1

perl ×1

tcl ×1