小编Chr*_*gis的帖子

为什么我们需要C++中的抽象类?

我刚刚在OOP类中了解了多态性,并且我很难理解抽象基类是如何有用的.

抽象类的目的是什么?定义一个抽象基类提供了什么,而不是通过在每个实际类中创建每个必需的函数来提供?

c++ oop inheritance abstract-class

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

csv解析器读取标头

我正在研究一个csv解析器,我想分别读取头文件和其余的csv文件.这是我读取csv的代码.

当前代码读取csv文件中的所有内容,但我需要单独读取标头.请帮我解决这个问题.

public class csv {

private void csvRead(File file)
{
    try
    {
    BufferedReader br = new BufferedReader( new FileReader(file));
    String strLine = "";
    StringTokenizer st = null;
    File cfile=new File("csv.txt");
    BufferedWriter writer = new BufferedWriter(new FileWriter(cfile));
    int tokenNumber = 0;

    while( (strLine = br.readLine()) != null)
    {
            st = new StringTokenizer(strLine, ",");
            while(st.hasMoreTokens())
            {

                    tokenNumber++;
                    writer.write(tokenNumber+"  "+ st.nextToken());
                    writer.newLine();
            }


            tokenNumber = 0;
            writer.flush();
    }
}

    catch(Exception e)
    {
        e.getMessage();
    }
}
Run Code Online (Sandbox Code Playgroud)

java csv parsing

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

将ArrayList作为参数传递

首先让我说我不能在这里放任何代码,因为我的笔记本电脑上的互联网不能工作,所以我通过手机发布这个.好吧问题是我说有两个类:第一和第二类.第一类有一个ArrayList属性,它从类2中调用void方法并将其ArrayList作为参数传递.现在该方法初始化另一个方法ArrayList并使其等于我传递的参数并对该新方法进行更改ArrayList.有趣的是,即使我作为参数传递的原始ArrayList也在改变.可能的原因是什么?

java arrays arraylist

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

fwrite和写入大小的性能

我正在写一个大型数字二维数组到二进制文件(最终大小~75 MB).

我在linux系统上这样做.首先,有没有比fwrite更好的方法或系统调用来尽可能快地写入文件?

其次,如果我应该使用fwrite,那么我应该把整个文件写成1个连续的行吗?

fwrite( buf, sizeof(float), 6700*6700, fp );
Run Code Online (Sandbox Code Playgroud)

或者把它写成一系列的块

fwrite( buf, sizeof(float), 8192, fp );
fwrite( *(buf+8192), sizeof(float), 8192, fp );
....
Run Code Online (Sandbox Code Playgroud)

如果我应该写下这篇文章,每个大块应该有多大?

c performance file-io

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

lea汇编指令

我只是想确保我正在读这个:

movl 12(%ebp), %edx
leal (%edx, %edx, 4), %eax
Run Code Online (Sandbox Code Playgroud)

我读第一行为:edx = [epb + 12],第二行为:eax = edx + edx*4

任何人都可以澄清一下吗?

另外,如果我有以下两行怎么办:

leal (%edx, %edx, 4), %eax
leal (%edx, %edx, 2), %eax
Run Code Online (Sandbox Code Playgroud)

执行第二行后,eax寄存器会被覆盖吗?

并将eax = edx + edx*4地址乘以4?或者地址的内容由4?

x86 assembly att addressing-mode

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

C++中接口类应该放在哪里

我是 C++ 编程新手,并且很难组织我的项目。我有一个名为 StateManager 的类,它有一个头文件和一个 cpp 文件。cpp 包含所有实现。

如果我现在想要创建一个 Interface 类:

class IStateManager
{
    public:
        virtual ~IStateManager() {}   
        virtual void SomeMethod {}
};
Run Code Online (Sandbox Code Playgroud)

我知道接口并不像 C# 或 Java 中那样真正存在,但我希望多个类从这个“接口”继承。

这个类还需要头文件和cpp文件吗?或者我可以把它放在头文件中吗?

c++

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

当平方和为N时,如何找到四个变量的所有可能值?

A^2+B^2+C^2+D^2 = N给定一个整数N,打印出ABCD解决方程的整数值的所有可能组合.

我猜我们可以比蛮力更好.

language-agnostic algorithm

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

连接到不同线程上的数据库

我有一个WPF应用程序,用户可以在其中一些文本框中输入数据库信息。用户单击“连接”后,将从用户输入的内容创建连接字符串,并建立连接。我注意到,如果用户输入的任何错误信息,应用程序将挂起,直到连接超时。挂起,是指用户根本无法与应用程序的其余部分进行交互。

我的目标是在测试连接字符串时保持应用程序响应。

我认为将此工作流放在另一个线程上是一个很好的解决方案。我的想法是仅禁用线程运行时可能需要数据库连接的所有内容。一旦线程返回(并确认连接字符串有效),我将重新启用所有功能。否则,请禁用所有功能。

但是,Thread线程完成后,该类没有事件通知(或者至少我不知道)。

我也和BackgroundWorker班级一起工作。这样效果更好。但是,当RunWorkerCompletedEventHandler事件触发且连接字符串无效时,出现以下异常:

调用线程无法访问该对象,因为其他线程拥有它。

这可能是因为触发完整的事件处理程序时,连接仍未超时。

是否有人有任何想法,还是我不应该尝试对数据库连接进行多线程处理?

我正在做什么的代码大纲:

private void bw_DoWork(object sender, DoWorkEventArgs e)
{
    dbTool = new DBTool();
    // Create the connection string
    e.Result = dbTool.connectToDB(); // connectToDB() returns a bool (true if connection established)
}

private void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
    // connectToDB() returns a bool (true if connection established)
    if(e.Result == true)  // Trying to read e.Result here throws the exception
    {
        // e.Error and e.Cancel should be checked …
Run Code Online (Sandbox Code Playgroud)

c# wpf multithreading sqlconnection

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

Spring - JPA - 插入 - 不传递具有默认值的字段的值会引发错误

表中的一些不可为空的字段具有默认值。通过 JPA 将新行插入表时,我不想为这些字段传递任何值,以便它们获得默认值。但是,当通过 Spring JPA 存储库类插入新行时,出现无法插入空值的错误。我注意到 JPA 发送到数据库的插入语句列出了所有字段:

insert into table (field1, field2, field3) values ('abc',null,null);
Run Code Online (Sandbox Code Playgroud)

由于field2和field3指定了null,因此未分配默认值,数据库会抛出无法插入null值的错误。有解决方法吗?

java spring jpa spring-data-jpa

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

迭代还是递归来实现二叉搜索树?

我现在正在学习数据结构和算法。

我的讲义有一个使用递归方法实现的二叉搜索树的实现。这是一种优雅的方式,但我的问题是在现实生活中的代码中,我是否应该递归地实现二叉搜索树,如果树的高度/深度数很大,它是否会生成大量调用堆栈。

我知道递归是理解许多数据结构概念的关键概念,但是您会选择在现实生活中使用递归吗?

iteration recursion binary-tree

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