小编Ash*_*hot的帖子

Qt错误找不到-lQtCored collect2:ld返回1退出状态

当我在调试模式下运行程序时,我收到以下错误.

cannot find -lQtCored 
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我可以在发布模式下正常运行程序.是因为我做了静态链接(我可以在没有Qt Creator的情况下运行我的可执行文件)?我在Windows上使用Qt Creator和Qt 4.7.0.

debugging qt qt-creator static-linking

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

TCL:如何使用包含花括号的名称创建和使用变量?

我的程序中的一些变量名称是根据用户的输入构造的,因此它们可能包含任何符号.一些符号被解释者视为特殊符号,例如$,#, ....通过在构造变量名的开头添加开括号并在其末尾添加闭括号来解决有关该符号的问题.但是,当变量名称包含大括号时,会出现另一个问题.

set "a{}" text

puts $a{}
puts ${a{}}
Run Code Online (Sandbox Code Playgroud)

没有任何拖曳工作在这里.如何打印变量的值,a{}是否有任何已知的方法来处理TCL中的特殊符号?

tcl special-characters

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

编译器错误尝试使用boost :: spirit解析字符串中的一个整数

我试图解析一个字符串,其中包含一些特殊的单词和整数.让特殊词成为"HHH".需要在它之前跳过数据并在之后解析数据.这是我的尝试:

#include <iostream>
#include <boost/spirit/include/qi.hpp>

namespace qi = boost::spirit::qi;
int main ()
{
    std::string input = "asd eee rrr HHH 456";
    std::string::iterator strbegin = input.begin();
    int result;
    bool ok = qi::phrase_parse(
            strbegin, input.end(),
            (*(qi::char_ - qi::lit("HHH")) >> qi::lit("HHH") >> qi::int_),
            qi::space,                  
            result);                               

    std::cout << ok << std::endl;
    std::cout << result << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

main.cpp:14:   instantiated from here                                                                                                                                                                
/usr/include/boost/spirit/home/qi/numeric/detail/numeric_utils.hpp:454: error: no matching function for call to mpl_::void_::void_(int)                                                            
/usr/include/boost/mpl/void.hpp:29: note: candidates are: mpl_::void_::void_()                                                                                                                       
/usr/include/boost/mpl/void.hpp:29: note:                 mpl_::void_::void_(const mpl_::void_&)                                                                                                     
/usr/include/boost/spirit/home/qi/numeric/detail/numeric_utils.hpp: In static member …
Run Code Online (Sandbox Code Playgroud)

c++ parsing boost compiler-errors boost-spirit

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

优化C++代码

这是我对Spoj 11373的解决方案.可乐的疯狂

#include <cstdio>

int main(){
    int T; scanf("%d",&T);

    for(int j = 1; j <= T; j++){
        int n;
        scanf("%d",&n);
        long long sum = 0, small = 0;
        int t;
        for(int i = 0; i < n; i++) {
            scanf("%d",&t);
            sum += t;
            if( sum < small) small = sum;
        }
        printf("Scenario #%d: %lld\n", j, -1*small+1);
    }
}
Run Code Online (Sandbox Code Playgroud)

问题很简单.这个解决方案在Spoj上需要0.12秒,尽管有0.01秒的解决方案.我很好奇可以对此代码进行哪些优化以加快速度.我认为-1*small+1可能会使用逐位操作,但没有找到如何.此外,由于总和可能超过int,我无法摆脱多久.

c++ optimization bit-manipulation

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

在哪里定义int()为0?

#include <iostream>
#include <string>

int main() {
    std::pair<std::string, int> s;
    std::cout << s.second << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

在这个例子s.second0虽然没有初始化.您能否提供C++标准的链接,其中定义了为什么0.我知道这是因为s.second被初始化了int(),但是无法找到标准中所说的那条int()线0.

c++ standards

0
推荐指数
2
解决办法
193
查看次数

如何检查正在运行的shell?

我需要检查脚本是否正在运行bashcsh.

#!/bin/csh

if ( `echo $SHELL` != '/bin/tcsh' )
   echo 'Please run it in csh' 
   exit
endif
Run Code Online (Sandbox Code Playgroud)

这段代码给出了

bash: g.csh: line 7: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)

bash shell csh

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

C++静态数组和sizeof运算符

我所知道的sizeof是编译时运算符,为什么这段代码编译并正确运行而没有任何警告?

#include <iostream>

    int main() {    
        int size;
        std::cin >> size;
        int array[size];
        std::cout << sizeof(array) / sizeof(int) << std::endl;
    }



g++ -v
Reading specs from /usr/lib/gcc/x86_64-redhat-linux/3.4.6/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-java-awt=gtk --host=x86_64-redhat-linux
Thread model: posix
gcc version 3.4.6 20060404 (Red Hat 3.4.6-9)
Run Code Online (Sandbox Code Playgroud)

c++ arrays static sizeof

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

"A"之前的预期构造函数,析构函数或类型转换

template <typename T>
class A {
    class B {
        typedef int INT;
        INT func(double e) {
            return INT(e * 3.6);
        }
    };
};
Run Code Online (Sandbox Code Playgroud)

我的问题是func从类声明中删除函数的定义.这是我的程序的简化案例.编译器抱怨typedef.

这是我的尝试:

template <typename T>
A<T>::B::INT A<T>::B::func(double e) {
    return INT(e * 3.6);
}
Run Code Online (Sandbox Code Playgroud)

编译器错误是 main.cpp:14: error: expected constructor, destructor, or type conversion before "A".

c++ templates

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

QTableWidget更改选择模式

单击QTableWidget单元格时,它仅选择单元格.如何配置tablewidget,以便在单击一个单元格时,将选择包含单元格的整行?

它可以使用信号,插槽完成.我很好奇有没有标准的做法呢?

c++ qt selection qtablewidget

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

签名与无符号比较

#include <iostream>

int main()
{
    signed int a = 5;
    unsigned char b = -5;
    unsigned int c = a > b;

    std::cout << c << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

此代码打印0.

有谁能解释这里发生了什么?我猜测,编译器转换ab对同一类型的(unsigend int也许),并比较.

c++ unsigned signed compare

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

c ++ 11信号是否等同于boost.signals

正如我所说,许多提升库都包含在c ++ 11标准中.更改boost::std::I 之后我设法使用c ++ 11编译器编译它们.我有问题编译包含的代码boost::signals.

#include <iostream> 
#include <functional>
#include <csignal>

void func()
{
    std::cout << "Hello world" << std::endl;
}

int main() 
{ 
    std::signal<void()> s;
    s.connect(func);
    s();      
} 
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

prog.cpp: In function ‘int main()’:
prog.cpp:12:19: error: invalid operands of types ‘void (*(int, __sighandler_t)throw ())(int) {aka void (*(int, void (*)(int))throw ())(int)}’ and ‘void’ to binary ‘operator<’
  std::signal<void()> s;
                   ^
prog.cpp:12:22: error: ‘s’ was not declared in this scope
  std::signal<void()> s; 
Run Code Online (Sandbox Code Playgroud)

std::signal等于 …

c++ boost signals c++11

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