当我在调试模式下运行程序时,我收到以下错误.
cannot find -lQtCored
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
我可以在发布模式下正常运行程序.是因为我做了静态链接(我可以在没有Qt Creator的情况下运行我的可执行文件)?我在Windows上使用Qt Creator和Qt 4.7.0.
我的程序中的一些变量名称是根据用户的输入构造的,因此它们可能包含任何符号.一些符号被解释者视为特殊符号,例如$,#, ....通过在构造变量名的开头添加开括号并在其末尾添加闭括号来解决有关该符号的问题.但是,当变量名称包含大括号时,会出现另一个问题.
set "a{}" text
puts $a{}
puts ${a{}}
Run Code Online (Sandbox Code Playgroud)
没有任何拖曳工作在这里.如何打印变量的值,a{}是否有任何已知的方法来处理TCL中的特殊符号?
我试图解析一个字符串,其中包含一些特殊的单词和整数.让特殊词成为"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) 这是我对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,我无法摆脱多久.
#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.second中0虽然没有初始化.您能否提供C++标准的链接,其中定义了为什么0.我知道这是因为s.second被初始化了int(),但是无法找到标准中所说的那条int()线0.
我需要检查脚本是否正在运行bash或csh.
#!/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) 我所知道的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) 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".
单击QTableWidget单元格时,它仅选择单元格.如何配置tablewidget,以便在单击一个单元格时,将选择包含单元格的整行?
它可以使用信号,插槽完成.我很好奇有没有标准的做法呢?
#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.
有谁能解释这里发生了什么?我猜测,编译器转换a和b对同一类型的(unsigend int也许),并比较.
正如我所说,许多提升库都包含在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等于 …