小编hiv*_*ert的帖子

c ++ STL设置差异

C++ STL集数据结构是否具有设置差异运算符?

c++ stl set stdset set-difference

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

constexpr没有在VC2013中编译

此constexpr代码未在Visual Studio 2013版本12.0.21005.1 REL中编译

是否有更新的Visual Studio编译器与constexpr一起使用?

#include <iostream>

constexpr int factorial(int n)
{
    return n <= 1 ? 1 : (n * factorial(n - 1));
}

int main(void)
{
    const int fact_three = factorial(3);
    std::cout << fact_three << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译输出:

    1>------ Build started: Project: Project1, Configuration: Debug Win32 ------
    1>  Source.cpp
    1>....\source.cpp(3): error C2144: syntax error : 'int' should be preceded by ';'
    1>....\source.cpp(3): error C4430: missing type specifier - int assumed. Note: C++ …

c++ constexpr c++11 visual-studio-2013

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

g ++:静态和动态库应该以什么顺序链接?

假设我们有一个名为"my_app"的主要可执行文件,它使用了其他几个库:3个库是静态链接的,其他3个是动态链接的.它们应该以哪种顺序与"my_app"相关联?

但这些顺序应该以哪种顺序联系起来?

假设我们得到了依赖于libSB的libSA(如在静态A中),以及依赖于libSB的libSC:

libSA -> libSB -> libSC
Run Code Online (Sandbox Code Playgroud)

和三个动态链接库:libDA -> libDB -> libDC(libDA是基本的,libDC是最高的)

这些顺序应该链接在哪?第一个还是最后一个?

g++ ... -g libSA libSB libSC -lDA -lDB -lDC -o my_app
Run Code Online (Sandbox Code Playgroud)

看起来像现在的顺序,但是这样吗?如果任何动态库与静态库或其他方式之间存在依赖关系,该怎么办?

c++ linker shared-libraries dynamic-linking static-libraries

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

连接到PHPStorm中的MySQL数据源

我正在使用带有"wampserver"的IDE"Phpstorm".我想连接MySQL数据源,但我遇到了一个问题:

Connection to MySQL - DatabaseName@localhost failed: Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at com.intellij.persistence.database.console.RemoteJdbcServer.main(RemoteJdbcServer.java:15)
Run Code Online (Sandbox Code Playgroud)

我也下载mysql-connector-java-gpl-5.1.29.msi并安装了它,但我仍然遇到了一些问题.

php mysql phpstorm

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

iOS与谷歌地图

我已使用Google Developers Console将Google Maps SDK与iOS集成.

但是当我现在运行应用程序时,它会给我以下错误.

ClientParametersRequest失败,剩余3次尝试(0 vs 5).

Error Domain=com.google.HTTPStatus Code=400 "The operation couldn’t be completed.(com.google.HTTPStatus error 400.)" UserInfo=0xb83c2a0 {data=<CFData 0xc13d600 [0xe7a4d8]>{length = 145, capacity = 256, bytes = 0x3c48544d4c3e0a3c484541443e0a3c54 ... 3c2f48544d4c3e0a}}
Run Code Online (Sandbox Code Playgroud)

然后它说

Google Maps `SDK` for `iOS` cannot connect or validate APIKey: 
Error Domain=com.google.HTTPStatus Code=400 "The operation couldn’t be completed. 
(com.google.HTTPStatus error 400.)" UserInfo=0x94bf990 {data=<CFData 0x907df90 [0xe7a4d8]>
{length = 145, capacity = 256, bytes = 0x3c48544d4c3e0a3c484541443e0a3c54 ... 3c2f48544d4c3e0a}}
Run Code Online (Sandbox Code Playgroud)

我已经请求了密钥,我使用相同的40个字符密钥.我也尝试重新生成密钥,然后使用它.我在网上搜索过,有人说应该在"服务"中启用"谷歌SDK for iOS".在我的案例中也启用了这一点.

但没有任何作用.有人见过同样的问题吗?

google-maps api-key ios

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

如何在C++中获取集合中的元素?

我很困惑如何获取集合中的元素.我想我必须使用迭代器,但我该如何逐步完成呢?

c++ set stdset

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

Linux系统调用表或汇编语言的cheetsheet

有谁知道在汇编语言中为Linux系统调用找到汇总表或备忘单的位置?我通过int 0x80指令调用Linux系统调用,我需要不时地引用哪个寄存器包含什么值.

谢谢.

c linux assembly

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

如何使用128位C变量和xmm 128位asm?

在gcc中,我想通过asm代码做一个带有2个C变量的128位xor:怎么做?

asm (
    "movdqa %1, %%xmm1;"
    "movdqa %0, %%xmm0;"
     "pxor %%xmm1,%%xmm0;"
     "movdqa %%xmm0, %0;"

    :"=x"(buff) /* output operand */
    :"x"(bu), "x"(buff)
    :"%xmm0","%xmm1"
    );
Run Code Online (Sandbox Code Playgroud)

但我有一个分段错误错误; 这是objdump输出:

movq   -0x80(%rbp),%xmm2

movq   -0x88(%rbp),%xmm3

movdqa %xmm2,%xmm1

movdqa %xmm2,%xmm0

pxor   %xmm1,%xmm0

movdqa %xmm0,%xmm2

movq   %xmm2,-0x78(%rbp)
Run Code Online (Sandbox Code Playgroud)

c sse simd

10
推荐指数
2
解决办法
9404
查看次数

如何从c ++中的set <int>中删除所有偶数整数

我是C++的新手.我想知道经验丰富的程序员是如何做到这一点的.

是)我有的:

set<int> s;
s.insert(1);
s.insert(2);
s.insert(3);
s.insert(4);
s.insert(5);

for(set<int>::iterator itr = s.begin(); itr != s.end(); ++itr){
if (!(*itr % 2))
    s.erase(itr);
}
Run Code Online (Sandbox Code Playgroud)

当然,它不起作用.因为itr在擦除后会递增.这是否意味着Itr必须在每次擦除集合中的元素后指向集合的开头?

c++ set stdset

10
推荐指数
3
解决办法
5118
查看次数

c ++ 11快速constexpr整数幂

在这里击败死马.在C中执行整数幂的典型(和快速)方法是经典的:

int64_t ipow(int64_t base, int exp){
  int64_t result = 1;
  while(exp){
    if(exp & 1)
      result *= base;
    exp >>= 1;
    base *= base;
  }
  return result;
}
Run Code Online (Sandbox Code Playgroud)

但是我需要一个编译时整数幂,所以我继续使用constexpr进行递归实现:

constexpr int64_t ipow_(int base, int exp){
  return exp > 1 ? ipow_(base, (exp>>1) + (exp&1)) * ipow_(base, exp>>1) : base;
}
constexpr int64_t ipow(int base, int exp){
  return exp < 1 ? 1 : ipow_(base, exp);
}
Run Code Online (Sandbox Code Playgroud)

第二个函数只是以可预测的方式处理小于1的指数.exp<0在这种情况下,传递是一个错误.

递归版本慢4倍

我在[0,15]范围内生成10E6随机值基数和指数的向量,并在向量上计算两个算法的时间(在进行非定时运行以尝试去除任何缓存效果之后).没有优化,recursice方法的速度是循环的两倍.但是使用-O3(GCC)时,循环比recursice方法快4倍.

我向你们提出的问题是:任何人都可以提出一个更快的ipow()函数来处理指数和0的基数并且可以用作constexpr

(免责声明:我不需要更快的ipow,我只是想看看这里的聪明人能想出什么).

c++ optimization recursion constexpr c++11

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