小编Rub*_*Rad的帖子

使用const std :: vector包装现有内存?

好的,所以我最近了解到(a)std :: vector按定义/标准使用连续内存,因此(b)&(v [0])是连续内存块的地址,你可以读/写作为一个老式的C-array.喜欢...

void printem(size_t n, int* iary)
{ for (size_t i=0; i<n; ++i) std::cout << iary[i] << std::endl; }
void doublem(size_t n, int* iary)
{ for (size_t i=0; i<n; ++i) iary[i] *= 2; }

std::vector<int> v;
for (size_t i=0; i<100; ++i) v.push_back(i);
int* iptr = &(v[0]);
doublem(v.size(), iptr);
printem(v.size(), iptr);
Run Code Online (Sandbox Code Playgroud)

好的,这很酷,但我想走向另一个方向.我有很多很多现有的代码

double computeSomething(const std::vector<SomeClass>& v) { ... }
Run Code Online (Sandbox Code Playgroud)

如果我有一个C-array对象,我可以使用这样的代码:

SomeClass cary[100]; // 100*sizeof(SomeClass)
// populate this however
std::vector<SomeClass> v;
for (size_t i=0; i<100; ++i) v.push_back(cary[i]);
// now v …
Run Code Online (Sandbox Code Playgroud)

c++ stl const vector

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

Jupyter/Geopandas 绘图顺序打破了 Figsize

我有一个笔记本(github 链接),我在其中使用 geopandas 绘制带有不同国家/地区颜色的地图。根据绘图的顺序,有时它不遵守我指定的 Figsize() 。我在 Ubuntu 20.04 和 Firefox 中本地运行的 jupyter 以及在 Chromium 中运行的 Binder 和 Colab 中重复看到了这种行为。

有人可以帮助我了解发生了什么事吗?这是一个错误还是我控制 geopandas/matplotlib 错误?

import matplotlib.pyplot as plt
import geopandas as gpd

world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
sixc = world[ world['continent'] != 'Antarctica' ]
asia = world[ world['continent'] == 'Asia' ]
noam = world[ world['continent'] == 'North America']
swed = world[ world['iso_a3'] == 'SWE' ] 

# This works, makes a 2x1 landscapey aspect
axes = sixc.plot(figsize=(8,4), color='lightgrey')
asia.plot(ax=axes, color='green')
noam.plot(ax=axes, color='purple')

# …
Run Code Online (Sandbox Code Playgroud)

python matplotlib geopandas figsize

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

标签 统计

c++ ×1

const ×1

figsize ×1

geopandas ×1

matplotlib ×1

python ×1

stl ×1

vector ×1