问题列表 - 第23303页

If-else-if与地图

假设我有一个if/else-if链:

if( x.GetId() == 1 )
{
}
else if( x.GetId() == 2 )
{
}
// ... 50 more else if statements
Run Code Online (Sandbox Code Playgroud)

我想知道的是,如果我保留地图,它在性能方面会更好吗?(假设键是整数)

c++ performance map

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

在使用boost :: spirit进行解析时,我如何假设"默认值"?

假设我的语法定义为:

some_rule := a b [c [d]]
Run Code Online (Sandbox Code Playgroud)

where c,and d是可选的,如果没有给出,则默认为某个值(假设为14).如果没有给出值,我可以将其默认为14吗?我希望生产std::vector的产品总是4号.

我最接近的是如下:

qi::rule<Iterator, std::vector<int>(), ascii::space_type> some_rule;
some_rule %= int_ >> int_ >> -int_ >> -int_;

// ...

some_other_rule = some_rule[&some_callback_for_int_vectors];
Run Code Online (Sandbox Code Playgroud)

然后,对于未显示的可选值,我将获得0(我相信).然后我将最后的连续0改为14.这不仅错误,而且也不优雅.有一个更好的方法吗?

c++ boost-spirit

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

带新线的猫

我的输入文件内容是

欢迎

欢迎1

欢迎2

我的脚本是

for groupline in `cat file`
do
        echo $groupline;
done
Run Code Online (Sandbox Code Playgroud)

我得到了以下输出。

欢迎
欢迎1
欢迎2 

为什么不打印空行。我要原因

bash

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

Hash Table v/s C++中的STL映射

我正在尝试学习C++地图.只是想知道STL地图的实施.我读它采用二进制搜索树.

  1. STL中是否有哈希表的实现?

  2. STL映射究竟如何存储键值对?

c++ hashtable hashmap

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

oracle内部BTree和Bitmap Index是如何存储的?

我想知道oracle中BTree索引和位图索引存储了什么值

oracle10g

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

oracle中的索引类型?

oracle中的索引类型是什么?如何识别需要创建的索引?

oracle oracle10g

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

如何在IDLE中停止Python程序的执行

我有一个python脚本,使用plt.show()它作为它的最后一条指令.当它运行时,IDLE只在最后一条指令后挂起.我得到的图像,但我没有收到提示.

在其他脚本上我通常ctrl-c用来打破程序(有时候不能立即工作)但是我如何得到提示plt.show()Ctrl-c不起作用......

还有其他方法可以阻止该计划吗?

如果它有任何区别,这在Windows上是IDLE.

python tkinter matplotlib break python-idle

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

开发聊天网站

我想开发一个像http://omgele.com这样的匿名聊天网站.我知道这个网站是使用twisted matrix框架在python中开发的.使用扭曲矩阵,很容易开发这样的网站.但是我对Java非常熟悉并且有1年的经验,并且不懂python.

  1. 我该怎么办?我应该开始学习python以利用扭曲矩阵框架吗?

    要么

  2. 我应该在java中开发它吗?如果是这样,你建议使用哪个框架?

python java chat twisted

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

nginx可以根据url运行unix命令吗?

是否可以配置nginx以基于url运行unix命令?

例如:

http://localhost/list/usr/local
Run Code Online (Sandbox Code Playgroud)

这运行:

ls /usr/local
Run Code Online (Sandbox Code Playgroud)

然后返回结果?

url configuration nginx

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

如何以小于线性的时间对位数组中的位进行分区

这是我最近面临的一个面试问题.


给定1和0的数组,找到一种方法来对位进行分区,in place以便将0组合在一起,并将1组合在一起.1是在0之前还是0在1之前是无关紧要的.

示例输入是101010101,输出是111110000000011111.

在不到线性的时间内解决问题.

使问题更简单.输入是一个整数数组,每个元素为1或0.输出是相同的整数数组,整数分区很好.


对我来说,这是一个简单的问题,如果它可以在O(N)中解决.我的方法是使用两个指针,从数组的两端开始.增加和减少每个指针; 如果它没有指向正确的整数,则交换两者.

    int * start = array;
    int * end = array + length - 1;

    while (start < end) {
        // Assume 0 always at the end
        if (*end == 0) {
            --end; 
            continue;
        }

        // Assume 1 always at the beginning
        if (*start == 1) {
            ++start; 
            continue;
        }

        swap(*start, *end);
    }

然而,采访坚持认为存在一个亚线性解决方案.这让我苦苦思索,但仍未得到答案.

有人可以帮忙解决这个面试问题吗?

更新:看到SO中的回复表明问题无法在次线性时间内解决,我可以确认我原来的想法,即不存在子线性的解决方案.

面试官有可能发挥作用吗?

c++

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