小编jbs*_*u32的帖子

复杂度O(log(n))是否等于O(sqrt(n))?

我的教授刚刚告诉我们,任何将输入长度减半的操作都有一个O(log(n))复杂度作为拇指规则.为什么不是O(sqrt(n)),它们都不是等价的?

algorithm time-complexity

32
推荐指数
5
解决办法
4万
查看次数

线程无法处理错误:启用多线程以使用std :: thread:不允许操作

我在我的系统上创建并执行了一个简单的线程.当我执行这个程序时,我有错误消息:启用多线程使用std :: thread:不允许操作

关于我的系统的一些细节:

  • linux ubuntu 13.10
  • g ++ 4.8.1

我编译包括库的源代码 pthread

源代码:

#include <iostream>
#include <thread>


using namespace std;

void func(void) {
  cout << "test thread" << endl;
}


int main() {
  cout << "start" << endl;
  thread t1 (func);

  t1.join();

  cout << "end" << endl;

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ multithreading

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

C++错误:未在此范围内声明Sleep

我在Ubuntu中使用C++和codeBlocks,在GCC 4.7中使用1.46 [yield_k.hpp]

我得到这个编译时错误:

error : Sleep was not declared in this scope
Run Code Online (Sandbox Code Playgroud)

码:

#include <iostream>
using namespace std;
int main() { 
  cout << "nitrate";
  cout << flush;
  sleep(1000);
  cout << "firtilizers";
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个错误?我希望程序挂起1秒钟.

c++ linux ubuntu gcc boost

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

我可以比较 C++ 中的 2 个结构吗?

我只是简单地声明了一个这样的结构 -

struct data{
    int x,y;
};
Run Code Online (Sandbox Code Playgroud)

现在我宣布2个变量abdata类型。我已经为它们分配了适当的值。现在,我想检查它们是否相等!我正在尝试这样做 -

data a,b;
a.x=12, a.y=24;
b.x=15, b.y=30;
if(a!=b)cout<<"a~b"<<endl;
Run Code Online (Sandbox Code Playgroud)

但是编译器在线上给了我以下错误4th->

error: no match for 'operator!=' (operand types are 'data' and 'data')

其实问题出在哪里?C++ 不支持这个比较吗??还是我犯了什么错误??

做到这一点的确切和最简单的方法是什么?我是否需要分别比较结构中的每个元素?或者有其他更聪明的方法吗??

c++ structure

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

为什么C++标准要求std :: partition满足不同类型迭代器的不同复杂性?

C++标准要求std::partitionForwardIterator和之间有不同数量的谓词应用程序BidirectionalIterator.对于ForwardIterator版本,谓词应用程序的数量应为<= N,其中N = std::distance(first, last),但对于BidirectionalIterator版本,谓词应用程序的数量应为<= N/2.显然,两个版本都具有时间复杂度O(N).

我的问题是,为什么要为不同类型的迭代器提供不同的要求呢?这样的要求迫使很多编译器?

例如:MSVC,std::partition以两种方式实现功能以满足这样的要求,这似乎不是很优雅.

还有一个问题:是否有任何算法依赖于这个系数,这样当N/2变为N时,渐近复杂度会有所不同?根据我的理解,如果我们考虑到Master's Theorem,对于形式T(n) = aT(n/b) + f(n),系数in f(n)并不重要.

Cf MSVC分区的等效实现:

template<class BidirIt, class UnaryPred>
BidirIt partition(BidirIt first, BidirIt last, UnaryPred pred, std::bidirectional_iterator_tag)
{
    while (true)
    {
        while ((first != last) && pred(*first))
        {
            ++first;
        }
        if (first == last)
        {
            break;
        }
        --last;
        while …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm c++11

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

为什么我不能用C++映射结构?

我已经宣布了这样的结构 - >

struct data{
    int x,y;
    bool operator < (const data& other) {
        return x<other.x or y<other.y;
    }
};
Run Code Online (Sandbox Code Playgroud)

现在我希望map它作为一个关键并具有bool价值.

int main()
{
    data a;
    map<data,bool>mp;
    a.x=12, a.y=24;
    mp[a]=true;
}
Run Code Online (Sandbox Code Playgroud)

最后一行给了我这个错误 - >

error: passing 'const' as 'this' argument of 'bool data::operator<(const data&)' discards qualifiers
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题 ??

c++ mapping structure

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

为什么"printf"不起作用?

我正在学习编程C.你能解释一下这里为什么没有打印出来吗 提前致谢.

#include <stdio.h>

int main (void)
{
    char a[]="abcde";
    printf ("%s", a);
}   
Run Code Online (Sandbox Code Playgroud)

c printf

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

在 Python 中用名称绘制 (x,y) 坐标

如何在Python中绘制一些坐标以及用它编写的相应名称?

假设我们有一些点A(5,3) B(-3,1) C(-6,-4) D(0,-3) E(0,0) F(4,-5)

我想要的情节就像这张照片

在此输入图像描述

我怎样才能做到这一点?

python matplotlib

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

Bash ::如何根据文件的第一个数字列进行排序?

这样列出了4个列表.我需要按照它排序first numerical column.列由tabs/ 分隔\t.

France \t Paris \t 13.2 \t 14.2
Germany \t Munich \t Hamburg \t 16.9 \t 16.6
Norway \t 8.9 \t 9.1
Spain \t Barcelona \t Madrid \t Malaga \t 21.2 \t 19.4 
Run Code Online (Sandbox Code Playgroud)

排序后,这些列看起来像 - >

Norway \t 8.9 \t 9.1
France \t Paris \t 13.2 \t 14.2
Germany \t Munich \t Hamburg \t 16.9 \t 16.6
Spain \t Barcelona \t Madrid \t Malaga \t 21.2 \t 19.4 
Run Code Online (Sandbox Code Playgroud)

它们按照分类排序8.9, 13.2, …

sorting bash shell

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

如何在 Clion 中启用多线程?

我写了一个简单的代码来测试threadingC++11。但是我不能在 中运行它Clion IDE,它在红线上给出以下错误。

terminate called after throwing an instance of 'std::system_error'
  what():  Enable multithreading to use std::thread: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

进程以退出代码结束134

关于我的系统的一些细节:

  • linux Ubuntu 14.10
  • C++11

我想代码对于解决这个问题不是那么重要,但我把它贴在这里:

#include <iostream>
#include <thread>

using namespace std;

void task1 () {
    cout << "Task 1::"<<endl;
}

int main() {
    thread t1(task1);
    t1.join();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ multithreading

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