小编ora*_*ice的帖子

删除堆分配的二维向量

所以我有一个堆分配的向量向量:

std::vector<std::vector<int>>* matrix = new std::vector<std::vector<int>>();
Run Code Online (Sandbox Code Playgroud)

在将大量数据放入之后matrix.删除此对象的正确方法是什么?

是否delete matrix释放所有内部向量?

c++ memory-management vector

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

添加小数类型的问题

我试图定义一个函数,要求我将一个小数类型添加到double,但我似乎收到一个错误.

epsilon = 0.0000001
dif :: (Fractional a) => (a->a) -> a -> a

dif f x = (f(x+epsilon)-f(x))/epsilon
Run Code Online (Sandbox Code Playgroud)

Haskell似乎在解释x + epsilon时遇到了麻烦,但考虑到x在函数声明中定义为Fractional类型并且epsilon是double(它是Fractional类型类的一部分),这似乎很奇怪?

这是我得到的错误:

Couldn't match expected type ‘a’ with actual type ‘Double’
  ‘a’ is a rigid type variable bound by
      the type signature for dif :: Fractional a => (a -> a) -> a -> a
      at dif.hs:3:8
Relevant bindings include
  x :: a (bound at dif.hs:5:7)
  f :: a -> a (bound at dif.hs:5:5)
  dif :: (a -> a) …
Run Code Online (Sandbox Code Playgroud)

haskell

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

如何有效地返回大型数据结构.

说我有一个对象矢量

std::vector<int> data; 
Run Code Online (Sandbox Code Playgroud)

此向量将非常大(大小为兆字节).我有一个需要返回此数据结构的函数.如果我返回这个数据结构"by-value"将会产生一个向量的副本吗?

std::vector<int> generate()
{
    std::vector<int> data;
    //Populate data
    return data;
}
Run Code Online (Sandbox Code Playgroud)

将此操作与在堆上分配向量并将指针传递给向量相比,效率有多高?

std::vector<int>* generate()
{
    std::vector<int>* data = new std::vector<int>();
    //Populate data
    return data; 
} 
Run Code Online (Sandbox Code Playgroud)

c++ memory-management vector

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

标签 统计

c++ ×2

memory-management ×2

vector ×2

haskell ×1