小编r.v*_*r.v的帖子

程序以std :: bad_alloc终止

我正在运行一个C++程序,它std::bad_alloc在任意点死亡,这取决于指定的输入.以下是关于该计划的一些观察/观点:

  • 对于较短的运行(运行时间取决于输入),程序正常完成.这个问题只适用于较大的运行.
  • 该程序没有任何可检测的内存泄漏.对于较小的运行,使用Valgrind/Memcheck检查了这一点.此外,我的整个代码没有任何指针(所有动态分配都由库完成,例如,在std::vector和中std::string;这些库类中的分配失败),因此内存泄漏极不可能.
  • 几个对象在循环中分配,然后移动到容器.其中一些对象在程序即将结束之前一直存在.
  • 我怀疑堆碎片可能是一个问题(参见C++程序死于std :: bad_alloc,但是valgrind报告没有内存泄漏)但我在64位系统上使用64位编译器(特别是带有g ++的Linux)和堆碎片在64位的土地让我相信堆碎片不能成为64位系统的问题.

还有什么我应该尝试的吗?任何可以帮助的特定工具?还有其他建议吗?

更新:最后证明虚拟内存已经受到限制ulimit -v.我后来忘了这件事,因此内存耗尽.将其重新设置以unlimited解决问题.

c++ memory-management

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

在模拟器上返回主屏幕

如何从任何地方返回到模拟器上的Android主屏幕?主页键似乎不起作用.我使用的是Android 2.1.

编辑:当我使用sdk时它正在工作,但是当我从AOSP源(2.1版)编译时,它不起作用.也许有人遇到过这个问题.

android android-emulator

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

vim wombat colorscheme在xterm中没有正确显示

我把wombat.vim放在我的〜/ .vim/colors /中,并且我在.vimrc中有:colorscheme wombat,但colorscheme不是wombat的样子.

该计划看起来像两个方案之间的交叉.

不确定有什么问题.有任何想法吗?

vim color-scheme

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

写文本文件同时随机访问并追加

下面的代码尝试覆盖文件中的不同位置,并附加到文件中.但是,它似乎不起作用.我已经尝试了几种模式,结果是覆盖或只是将所有内容附加到文件的末尾,但不是两者都在一起.是否有可能在C++中做这样的事情?或者,是否需要在不同模式下反复打开文件才能实现此目的?

int main() {
  fstream f("a.dat", ios::out | ios::app);
  f.seekp(ios::beg);
  f << "hello world";
  f.seekp(ios::end);
  f << "works";
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ file-io

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

OpenCV和Python:连接组件分析

我有一个工作连接组件分析代码在C中工作.它实际上是"学习Opencv"一书的副本.

现在我将所有代码重写为Python,我在Python API中找不到某些功能,比如cvStartFindContours.

我想知道是否有人在Python中实现了基本的连通组件分析功能.我知道有一些库,但我正在寻找更简单的东西,只是一个函数或一段代码.

我不需要任何"大"的东西,因为我有一个带有2或3个白色圆圈的纯黑色图像,我想找到圆圈的数量及其中心.

我知道我可以自己编码,但我更喜欢使用某人的功能或简单的库.

编辑:我通过以下方式解决了它.

def find_connected_components(img):
    """Find the connected components in img being a binary image.
    it approximates by rectangles and returns its centers
    """

    storage = cv.CreateMemStorage(0)
    contour = cv.FindContours(img, storage, cv.CV_RETR_CCOMP, cv.CV_CHAIN_APPROX_SIMPLE)
    centers = []

    while contour:
        # Approximates rectangles
        bound_rect = cv.BoundingRect(list(contour))

        centers.append(bound_rect[0] + bound_rect[2] / 2, bound_rect[1] + bound_rect[3] / 2)

        contour = contour.h_next()
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing computer-vision

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

错误的标记化

我有这个代码:

#include <boost/tokenizer.hpp>

typedef boost::tokenizer<boost::char_separator<char> > tokenizer;

int main() {
    using namespace std;
    boost::char_separator<char> sep(",");

    string s1 = "hello, world";
    tokenizer tok1(s1, sep);
    for (auto& token : tok1) {
        cout << token << " ";
    }
    cout << endl;

    tokenizer tok2(string("hello, world"), sep);
    for (auto& token : tok2) {
        cout << token << " ";
    }
    cout << endl;

    tokenizer tok3(string("hello, world, !!"), sep);
    for (auto& token : tok3) {
        cout << token << " ";
    }
    cout << endl; …
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-tokenizer

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

稀疏矩阵的逐元素绝对值

如何获得稀疏复矩阵的逐元素绝对值?一般来说,是否可以使用用户定义的函数将一个矩阵映射到另一个矩阵?

python scipy sparse-matrix

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

如何实现类似于 HashMap::entry 且不消耗密钥的函数?

我正在尝试实现类似的东西,HashMap::entry但不允许使用密钥(请参阅具有类似目的的RFC )。Index impl这是我的代码,以for为模型HashMap(参见thisthis)。

use std::collections::HashMap;
use std::hash::{Hash, BuildHasher};
use std::borrow::Borrow;

trait MapExt<Q: ?Sized, V> {
    fn get_or_insert(&mut self, key: &Q, value: V) -> &V;
}

impl<'a, Q: ?Sized, K, V, S> MapExt<&'a Q, V> for HashMap<K, V, S>
where
    K: Eq + Hash + Borrow<Q>,
    Q: Eq + Hash + ToOwned,
    S: BuildHasher,
{
    fn get_or_insert(&mut self, key: &Q, value: V) -> &V {
        if !self.contains_key(key) {
            self.insert(key.to_owned(), value); …
Run Code Online (Sandbox Code Playgroud)

generics traits rust

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