小编adr*_*ain的帖子

sted :: string在visual studio上的特定行为?

我有一个项目,我需要读/写大文件.

我决定使用ifstream :: read()将这些文件一次性传递到内存中,放入std :: string.(这似乎是做C++中的最快方法:http://insanecoding.blogspot.com/2011/11/how-to-read-in-file-in-c.htmlHTTP:// insanecoding. blogspot.com/2011/11/reading-in-entire-file-at-once-in-c.html)

当在文件之间切换时,我需要"重置"用作前一个内存缓冲区的std :: string(即擦除char []缓冲区以释放内存)

我试过了 :

std::string::clear()
std::string::assign("")
std::string::erase(0, std::string::npos)
std::string::resize(0)
std::string::reserve(0)
Run Code Online (Sandbox Code Playgroud)

但是,在Visual Studio 2008下,这并没有释放std :: string本身内部使用的内存:它的底层缓冲区没有被解除分配.

我发现删除它的唯一方法是调用std :: string :: swap(std :: string(""))强制更改实际std :: string和param中的空缓冲区之间的内部缓冲区.

我觉得这个行为有点奇怪......

我只在Visual Studio 2008上测试过,我不知道它是否是STL标准行为,或者它是否是MSVC特有的.

你能告诉我一些线索吗?

c++ stl stdstring

6
推荐指数
1
解决办法
1757
查看次数

如何在Matlab类中使用另一个常量来定义常量

我无法弄清楚如何使用其他方法来定义常量这样的简单事情.

例如,一个虚拟的例子:

classdef DummyClass < handle
    properties (Constant)
        NB_SECONDS_IN_MINUTE = 60;
        NB_MINUTES_IN_HOUR   = 60;

        NB_SECONDS_IN_HOUR   = NB_SECONDS_IN_MINUTE * NB_MINUTES_IN_HOUR;
    end
end
Run Code Online (Sandbox Code Playgroud)

这不起作用:(

然后我尝试了这一行:

NB_SECONDS_IN_HOUR   = DummyClass.NB_SECONDS_IN_MINUTE * DummyClass.NB_MINUTES_IN_HOUR;
Run Code Online (Sandbox Code Playgroud)

但那也不起作用......

有人在这里得到了一个线索?:/

(我正在使用MATLAB R2009a btw)

matlab matlab-class

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

使用特定的字符串格式将字符串转换为Excel日期和时间

我有一个Excel/VBA宏,它列出了目录中的文件.

文件名格式为:yyyy-MM-dd @hh-mm-ss_ [description] .csv

例如 : 2013-07-03@22-43-19_my-file.csv

然后我需要将文件名的第一部分放入Excel Date对象(包括时间戳)

我找到了CDate()函数,但它没有采用任何"format"参数,并且Format()函数的工作方式错误,即将String转换为Date.

我想获取一个带有String和格式的函数,并返回一个Excel Date/Time对象.

有没有专门设计的功能?

谢谢,

excel vba

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

在VBA中传递Variant参数ByRef时出现编译错误

我在Excel VBA中遇到"编译"错误,我不明白......

我有一个这样的方法:

    Public Sub SomeMethod(ByRef argument As SomeClass)
        ... <- 'argument' must be called ByRef because I have to modify it
    End Sub
Run Code Online (Sandbox Code Playgroud)

如果我定义一个变量,如:

    Dim var As SomeClass
Run Code Online (Sandbox Code Playgroud)

没问题,我可以打电话:

    SomeMethod var
Run Code Online (Sandbox Code Playgroud)

它正在发挥作用.

但是,如果我定义一个Variant变量,如:

    Dim var as Variant
    Set var = New SomeClass
Run Code Online (Sandbox Code Playgroud)

它不起作用.

如果我打电话:

    SomeMethod var
Run Code Online (Sandbox Code Playgroud)

VB弹出一条消息:'ByRef参数类型不匹配'

如果我打电话:

    SomeMethod (var)
Run Code Online (Sandbox Code Playgroud)

它"编译",但var然后传递ByVar它给了我一个运行时错误消息:'对象不支持此属性或方法'

所以我基本上只想告诉VBA我的Variant变量'var'实际上是'SomeClass'对象(在调试器中,VBA这样说),但我不知道怎么做...

有人可以帮帮我吗?

excel vba

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

重写JTable的DefaultTableCellRenderer以使JTable中的所有单元居中

我有一个问题,我无法摆脱.

你知道,我对使用JTables相当新,所以答案可能很简单,但我找不到解决方案:/

所以,我有一个使用AbstractTableModel的JTable,它覆盖了

    public Class<?> getColumnClass(int columnIndex_p) 
Run Code Online (Sandbox Code Playgroud)

方法,告诉要显示的每列的类型.其中一个是布尔值.

当我创建一个简单的JTable时,使用

    table_l = new JTable(new MyTableModel());
Run Code Online (Sandbox Code Playgroud)

一切都很好,并使用复选框(开/关)正确显示布尔值.

现在,我想将文本集中在每个单元格上(以后可能会有更多选项).

所以我为每一列定义了一个新的DefaultTableCellRenderer,如下所示:

    DefaultTableCellRenderer cellRenderer_l = new DefaultTableCellRenderer() {
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
          // delegate the rendering part to the default renderer (am i right ???)
          Component comp = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
          return comp;
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后我只需将此CellRender的水平对齐设置为:

    cellRenderer_l.setHorizontalAlignment(JLabel.CENTER);
Run Code Online (Sandbox Code Playgroud)

然后我在JTable的每一列上安装这个新的CellRenderer:

    for (int i = 0; i < table_l.getColumnCount(); ++i) {
        table_l.getColumnModel().getColumn(i).setCellRenderer(cellRenderer_l);
    }
Run Code Online (Sandbox Code Playgroud)

但是,使用新的CellRenderer,显示的JTable不再使用我的TableModel的getColumnClass()方法,因此只在布尔值上显示"true/false"字符串. …

java swing jtable renderer

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

标签 统计

excel ×2

vba ×2

c++ ×1

java ×1

jtable ×1

matlab ×1

matlab-class ×1

renderer ×1

stdstring ×1

stl ×1

swing ×1