stl 相关问题

标准模板库(STL)是通用容器,迭代器,算法和函数对象的C ++库。当C ++被标准化时,STL的大部分被采用到标准库中,并且标准库中的这些部分有时也被错误地统称为“STL”。

为什么 C++ STL iostream 不“异常友好”?

我习惯了 Delphi VCL 框架,其中 TStream 会在错误时抛出异常(例如,文件未找到、磁盘已满)。我正在移植一些代码以使用 C++ STL,但被 iostreams 发现了......

回答 4 投票 0

.nii 到 .stl 文件转换问题

有人可以帮我将.nii 格式的分段掩码转换为.stl 格式吗?我尝试对其进行转换,但发现了一些问题 i) 转换并不顺利,如图所示...

回答 1 投票 0

有没有一个函数可以修改map的值并返回迭代器?

我想要的是在map中插入一个pair(如果不存在则创建它,否则修改它),并获取值的指针,以供其他人使用。 这是一个演示代码: #包括 我想要的是在map中插入一个pair(如果不存在则创建它,否则修改它),并获取值的指针,以供其他人使用。 这是一个演示代码: #include <map> using namespace std; std::map<int, int> a = {{1, 1}}; int* set_and_return_value() { // option 1: a[1] = 2; return &(a[1]); i think it's ugly const auto [it, ok] = a.emplace(1, 2); return &(it->second); // emplace is good, but it won't modify the existed key's value } 那么,有没有一个函数,可以在真正插入pair后返回iterator? 通过迭代器赋值不会使迭代器失效,如果插入失败,您可以使用它和 emplace 的返回值进行条件赋值: #include <map> using namespace std; std::map<int, int> a = {{1, 1}}; auto set_and_return_it() { const auto [it, inserted] = a.emplace(1, 2); if (!inserted) { it->second = 2; } return it; } 如果您希望它更通用,请使用 try_emplace 以避免构造 2 两次。 template<typename K, typename T> auto set_and_return_it(K&& key, T&& value) { const auto [it, inserted] = a.try_emplace(std::forward<K>(key), std::forward<T>(value)); if (!inserted) { it->second = std::forward<T>(value); } return it; }

回答 1 投票 0

打破 std::for_each 循环

使用 std::for_each 算法时,满足特定条件时如何中断?

回答 9 投票 0

调用自定义类的map的值函数

我有一个自定义类的 STL 映射,其中键是整数,值是我的类的对象。我想使用地图调用我的类的函数。我的代码如下: #包括...

回答 1 投票 0

为什么我的代码对除一个实例之外的所有内容都有效?

我为我的c++实验室做作业,我需要从键盘获取一个数字,并在STL列表中输入数字后删除一个元素。由于某种原因,如果我将 7 个元素放入列表中,恰好是 {1,2,2,3,...

回答 1 投票 0

gtest:clang++ 和 std::vector 架构 x86_64 错误的未定义符号

我下载了gtest 1.6,并用clang++编译它。 导出 CC=/usr/bin/clang 导出 CXX=/usr/bin/clang++ 配置 制作 我得到了 libgtest.a,并将其复制到 /usr/local/lib/libgtest_c...

回答 2 投票 0

c++标准库中有红黑树或avl树的实现吗?

就像multiset是STL中的二叉搜索树实现一样,是否有可用的RB树或AVL树实现?

回答 3 投票 0

在 std::queue 初始化时,它分配内存,然后抛出访问冲突读取位置[关闭]

问题描述 我的复杂代码可以简化如下: #包括 #包括 #包括 #包括 TestCl 类...

回答 1 投票 0

cpp 当 std::queue 初始化时,它分配内存,然后抛出访问冲突读取位置

问题描述 我的复杂代码可以简化如下: #包括 #包括 #包括 #包括 TestCl 类...

回答 1 投票 0

对 std::array 的循环扩展

我想要一个类似数组的固定大小的对象,当新数据进入时它会循环并覆盖数据。我定义了这个模板类: 模板 类 CircularArray { 公关...

回答 1 投票 0

std::vector::data 有什么好的应用?

所以我和我的朋友有一天在查看 std::vector 类时注意到,您可以使用函数 std::vector::data 来检索指向 c++11 中内部数组的指针。直觉上...

回答 3 投票 0

哪里可以下载 GNU C++ 标准库的源代码?

我在http://ftp.gnu.org/gnu/glibc/下载了GNU标准C库(glibc)源代码。在哪里可以找到他们的 C++ 库的类似下载? 我用谷歌搜索了一下,似乎找不到......

回答 2 投票 0

c++ while 循环相当于 for 循环列表遍历 + 擦除不起作用

考虑以下函数 void removeOdd(向量& v) { for(向量::迭代器 it=v.begin(); it!=v.end(); ) { if((*it)%2) it = v.erase(it); 否则它++; ...

回答 1 投票 0

在 C++ std::vector 和 C 数组之间进行转换,无需复制

我希望能够在 std::vector 及其底层 C 数组 int* 之间进行转换,而无需显式复制数据。 std::vector 是否提供对底层 C 数组的访问?我正在寻找...

回答 5 投票 0

将“this”指针转换为字符串

在注册对象必须具有唯一名称的系统中,我想在名称中使用/包含对象的 this 指针。我想要最简单的创建方式???在哪里: std::string 名称 = ???(this);

回答 7 投票 0

std::set begin() 和 std::set 迭代器之间的距离(O(logn))

我需要找到 std::set 中元素的索引。该索引可以可视化为迭代器距开头的距离。 一种方法可以是: for(int i = 0, set::迭代器 it = s....

回答 5 投票 0

std::可选::value_or() - 惰性参数评估

是否可以以惰性方式评估 std::optional::value_or(expr) 参数,以便仅在没有值的情况下计算 expr ? 如果没有,什么是合适的替代品?

回答 4 投票 0

如何使用 STL 复制 C++ 中的映射、过滤和归约行为?

我想我们可以使用 std::transform 来复制 C++ 中的映射行为,如下所示: std::vector = { 1 , 2 , 3 ,4 }; std::vector out(in.size()); std::transform(in.begin(...

回答 3 投票 0

STL:仅保留唯一的字符串字符并保留顺序

std::set 和 std::unordered_set 都只提取唯一字符,但都不保留字符在字符串中出现的原始顺序。 有这么多...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.