小编Pau*_*scu的帖子

如何在更高版本的gcc上启用c11?

我目前正在使用gcc 4.6.3.我的理解是gcc默认使用gnu89标准,我想启用最新的C标准C11.我试过了:

[pauldb@pauldb-laptop test ]$ gcc -std=c11 -o test test.c
cc1: error: unrecognised command line option ‘-std=c11’
Run Code Online (Sandbox Code Playgroud)

我替换c11gnu11,我得到了同样的错误.为gcc启用最新C标准的正确方法是什么?

(注意:我对最新的C标准感兴趣,而不是最新的C++标准.)

c gcc c11

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

为什么scipy导入空间工作,而scipy.spatial在导入scipy后不起作用?

我想scipy.spatial.distance.cosine在我的代码中使用.我可以导入的spatial子模块,如果我这样做import scipy.spatialfrom scipy import spatial,但如果我只是import scipy调用scipy.spatial.distance.cosine(...)下面的错误结果:AttributeError: 'module' object has no attribute 'spatial'.

第二种方法有什么问题?

python scipy

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

如何遍历zsh中某个路径下的所有文件?

这是我到目前为止所拥有的:

for file in $(find /path/to/directory -type f); echo $file; done
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

zsh: parse error near `done'
Run Code Online (Sandbox Code Playgroud)

for-loop zsh

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

定义<比较器时,按降序对对象排序?

我有一个班级A和一个<比较器.我怎样才能用它们来排序的数组A中的降序顺序?

class A {
...
};

class LessA {
   bool operator()(const A& a1, const A& a2) const {
   ...
   }
}

vector<A> v;
sort(v.begin(), v.end(), ???);
Run Code Online (Sandbox Code Playgroud)

我想我应该用???基于的东西替换LessA,但我无法弄清楚应该在那里进行什么.我想过使用lambda函数,但我一直在寻找更短的东西.

c++ sorting comparator c++11

7
推荐指数
2
解决办法
4674
查看次数

如何通过sqlalchemy关系添加值时避免插入重复的条目?

假设我们在多对多关系中有两个表,如下所示:

class User(db.Model):
  __tablename__ = 'user'
  uid = db.Column(db.String(80), primary_key=True)
  languages = db.relationship('Language', lazy='dynamic',
                              secondary='user_language')

class UserLanguage(db.Model):
  __tablename__ = 'user_language'
  __tableargs__ = (db.UniqueConstraint('uid', 'lid', name='user_language_ff'),)

  id = db.Column(db.Integer, primary_key=True)
  uid = db.Column(db.String(80), db.ForeignKey('user.uid'))
  lid = db.Column(db.String(80), db.ForeignKey('language.lid'))

class Language(db.Model):
  lid = db.Column(db.String(80), primary_key=True)
  language_name = db.Column(db.String(30))
Run Code Online (Sandbox Code Playgroud)

现在在python shell中:

In [4]: user = User.query.all()[0]

In [11]: user.languages = [Language('1', 'English')]

In [12]: db.session.commit()

In [13]: user2 = User.query.all()[1]

In [14]: user2.languages = [Language('1', 'English')]

In [15]: db.session.commit()

IntegrityError: (IntegrityError) column lid …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy table-relationships flask-sqlalchemy

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

如何强制清除STL内存缓存?

我有一个有类型字段的类unordered_map.我在我的应用程序中创建了这个对象的单个实例,它包含在一个shared_ptr.该对象非常耗费内存,我想在使用它后立即将其删除.但是,重置指针只会释放对象占用的一小部分内存.如何强制程序释放对象占用的所有内存?

以下模拟程序重现我的问题.for循环打印垃圾只是给我足够的时间来观察使用的内存top.析构函数刚刚被调用reset().此外,紧接着,使用的内存从大约2 GB下降到1.5 GB.

#include <iostream>
#include <memory>
#include <unordered_map>

using namespace std;

struct A {
  ~A() {
    cerr << "Destructor" << endl;
  }

  unordered_map<int, int> index;
};

int main() {
  shared_ptr<A> a = make_shared<A>();
  for (size_t i = 0; i < 50000000; ++i) {
    a->index[2*i] = i + 3;
  }

  // Do some random work.
  for (size_t i = 0; i < 3000000; ++i) {
    cout << "First" << endl;
  } …
Run Code Online (Sandbox Code Playgroud)

c++ stl g++ c++11

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

如何在.vimrc中为特定文件扩展名设置不同的文本宽度?

我希望默认文本宽度为80个字符,除了一些文件扩展名之外txt.除了第一次编辑(和创建)txt文件外,以下行似乎有效.

setlocal textwidth=80
autocmd bufreadpre *.txt set textwidth=0
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?

vim

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

如何使用eigen编译C++程序而不指定-I标志?

我有以下测试程序使用eigen:

#include <iostream>
#include <Eigen/Dense>

using namespace std;
using Eigen::MatrixXd;

int main() {
  MatrixXd m(2, 2);
  m(0, 0) = 3;
  m(1, 0) = 2.5;
  m(0, 1) = -1;
  m(1, 1) = m(1, 0) + m(0, 1);
  cout << m << endl;
}
Run Code Online (Sandbox Code Playgroud)

我可以编译它g++ -I/usr/include/eigen3/ test1.cpp.

但是,如果我没有指定include标志,则编译命令不起作用.这对我来说似乎很奇怪,因为我认为/usr/include编译器会自动拾取任何标题(例如Boost标题,也位于其下/usr/include,工作完全正常,无需告诉编译器在哪里查找它们).我需要对特征设置进行哪些更改,因此我不必在编译命令中指定-I标志?

c++ g++ eigen eigen3

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

如何避免启动屏幕消息?

当我开始时screen,我收到以下消息:

Screen version 4.00.03jw4 (FAU) 2-May-06

Copyright (c) 1993-2002 Juergen Weigert, Michael Schroeder
Copyright (c) 1987 Oliver Laumann

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of …
Run Code Online (Sandbox Code Playgroud)

gnu-screen

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

operator()和operator <在C++中有什么区别?

每当我想要比较的C++实体时,我就会实现operator<.然而,阅读其他人的代码,我看到通过实现可以实现同样的目标operator().

两者有什么区别?什么时候应该使用这些运营商?

c++ operators

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

git pull之后如何切换回上一个分支?

我正在考虑刷新这样的git分支:

git checkout master && git pull && git co - && git rebase master

如果从原点拉出任何更改,则前一个分支将被覆盖,'git co -'不再返回到上一个分支.

(当然我可以使用分支的名称,但我正在寻找可以在别名中转换的一般适用的东西.)

git bash

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