小编Muh*_*far的帖子

什么是可用于存储和管理整数集合的最佳C++数据结构?

这是我的第一个StackOverflow问题,如果我没有按照社区准则处理这个问题并且我是否应该删除它,请告诉我.

我得到了我的第一个面试问题,因为我的实施而被拒绝了.

问题是:

设计并实现一个存储整数集合的C++类.在施工时,收集应该是空的.相同的数字可以存储多次.

实现以下方法:

  1. 插入(int x).插入值"x"的条目.

  2. 擦除(int x).从集合中删除一个值为"x"的条目(如果存在).

  3. 擦除(int from,int to).删除[from,to]范围内值的所有条目.

  4. Count(int from,int to).计算有多少条目具有[from,to]范围内的值.

我认为一个好的实现是使用链表,因为它使用非连续内存并且删除条目不需要改组大量数据(如向量或数组).但是,我得到了公司的反馈,说我的实施时间复杂度为O(n ^ 2),效率非常低,所以我被拒绝了.如果在另一次采访中弹出类似的问题,我不想重复同样的错误,所以我想知道解决这个问题的最佳方式是什么(朋友建议使用地图,但他也不确定).

我的代码是:

void IntegerCollector::insert(int x)
{
    entries.push_back(x);
}

void IntegerCollector::erase(int x)
{
    list<int>::iterator position = find(entries.begin(), entries.end(), x);
    if (position != entries.end())
        entries.erase(position);
}

void IntegerCollector::erase(int from, int to)
{
    list<int>::iterator position = entries.begin();

    while (position != entries.end())
    {
        if (*position >= from && *position <= to)
            position = entries.erase(position);
        else
            position++;
    }
}

int IntegerCollector::count(int from, int to)
{
    list<int>::iterator position = …
Run Code Online (Sandbox Code Playgroud)

c++ collections integer

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

(Perl)从文件中读取字符串时是否可以插入变量?

我正在处理一个脚本,该脚本具有一些传递给字符串的变量,然后将其打印出来。最初的字符串只有6行,我不需要外部文件,但现在有了一个新字符串,可以填充1000行以上。新字符串还具有一些字段,这些字段将被脚本中声明的变量替换。

文本文件具有以下内容:

Hello $name
Run Code Online (Sandbox Code Playgroud)

该代码应该包含几个部分。

  1. 变量声明
my $name = 'Foo';
Run Code Online (Sandbox Code Playgroud)
  1. 打开文件并将其读入字符串。
my $content;
open(my $fh, '<', $filename) or die "cannot open file $filename";
{
    local $/;
    $content = <$fh>;
}
close($fh);
Run Code Online (Sandbox Code Playgroud)
  1. 打印字符串
print $content
Run Code Online (Sandbox Code Playgroud)

预期结果:

Hello Foo
Run Code Online (Sandbox Code Playgroud)

我想知道是否有可能从文件中读取“ Hello $ name”但将其打印为“ Hello Foo”,因为变量名称被声明为Foo。

perl

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

Java - 函数可以返回与输入参数之一相同的类型吗?

我在 Java 中有两个非常相似的函数:

public Connector GetRelevantConnector(MyData myData, Connector c1, Connector c2) {
    if(myData.useC1()){
         return c1;
    } 
    return c2;
}
Run Code Online (Sandbox Code Playgroud)

同样,我有以下功能:

public String GetRelevantConnector(MyData myData, String c1, String c2) {
    if(myData.useC1()){
         return c1;
    } 
    return c2;
}
Run Code Online (Sandbox Code Playgroud)

上面的函数已经被简化,但无论如何,函数内部的所有逻辑都依赖于 myData 来选择 c1 或 c2。这些函数本质上是重复的代码,我想知道是否可以将 Connector/String 声明为泛型类型,并且无论泛型输入是什么,函数的返回类型都是如此。这可能吗?

java

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

将整数连接成字符串的最快方法

我有一个对象,它在初始化时需要一个字符串来标识它的名称。

String name = "MyObject" + Integer.toString(objectNum);
object = new Object(name);
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,名称遵循一个约定,即整数与字符串“MyObject”连接在一起。一位同事抱怨说,由于 int 到 string 的转换,我编写这段代码的方式从性能角度来看实际上很糟糕。该数字作为 int 接收,对此我无能为力。对象参数必须接受一个字符串。我怎样才能更快地做到这一点?使用字符串格式有帮助吗?

java string type-conversion

0
推荐指数
1
解决办法
54
查看次数

标签 统计

java ×2

c++ ×1

collections ×1

integer ×1

perl ×1

string ×1

type-conversion ×1