libstdc++ 相关问题

Libstdc ++是C ++标准库的GNU实现,作为GCC的一部分提供

标准中提到了std::copy_n源增量计数吗?

我实现了一个迭代器的示例,它计算每个增量: #包括 #包括 #包括 #包括 模板 我实现了一个迭代器的示例,它计算每个增量: #include <vector> #include <iostream> #include <algorithm> #include <iterator> template <class IteratorCategory = std::vector<int>::iterator::iterator_category> class DereferenceCountingIterator : public std::vector<int>::iterator { public: using iterator_category = IteratorCategory; public: static std::size_t increaseCnt; DereferenceCountingIterator( typename std::vector<int>::iterator iter) : std::vector<int>::iterator(iter) {} auto& operator++() { ++increaseCnt; return std::vector<int>::iterator::operator++(); } DereferenceCountingIterator<IteratorCategory> operator+(difference_type diff) { return static_cast<std::vector<int>::iterator&>(*this).operator+(diff); } }; 此模板类既可以用作 RandomAccess 也可以用作输入迭代器: template<class IteratorCategory> std::size_t DereferenceCountingIterator<IteratorCategory>::increaseCnt = 0; using RandomAccessDereferenceContingIterator = DereferenceCountingIterator<>; using NonRandomAccessDereferenceContingIterator = DereferenceCountingIterator<std::input_iterator_tag>; 应用程序示例: int main() { auto vec = std::vector<int>{3, 4, 5}; auto rAVecBegin = RandomAccessDereferenceContingIterator(vec.begin()); auto nonRAVecBegin = NonRandomAccessDereferenceContingIterator(vec.begin()); { const auto incBefore = RandomAccessDereferenceContingIterator::increaseCnt; auto out = std::vector<int>{}; std::copy_n(rAVecBegin, 3, std::back_inserter(out)); const auto incAfter = RandomAccessDereferenceContingIterator::increaseCnt; std::cout << incAfter - incBefore << std::endl; } { const auto incBefore = NonRandomAccessDereferenceContingIterator::increaseCnt; auto out = std::vector<int>{}; std::copy_n(nonRAVecBegin, 3, std::back_inserter(out)); const auto incAfter = NonRandomAccessDereferenceContingIterator::increaseCnt; std::cout << incAfter - incBefore << std::endl; } return 0; } 该程序的输出如下(在 libstdc++ 和 libc++ 中): 3 2 我能否确定 copy_n 在源迭代器不是 RandomAccessIterator 时准确地执行 n-1 增量,如果是的话 n 增量? 如果不是 RandomAccessIterator,我能否确定 copy_n 在源迭代器上精确执行 n-1 增量,如果是,则执行 n 增量? 不,对增量数量没有要求。 如果迭代器只是输入迭代器,而不是前向迭代器,则强制实现精确执行 n 或 n-1 递增到最后一个解引用的迭代器或之后未解引用但必须有效的迭代器。输入迭代器无法以任何其他方式迭代源序列。 如果迭代器是前向迭代器甚至随机访问迭代器,则对数字增量没有要求,并且实现也可以递减或使步长大于增量/减量。 也不要求按顺序复制序列。 唯一的复杂性要求是准确地进行 n 分配。

回答 1 投票 0

为什么C++向量排序效率不高?

我在 CPP 上玩一些东西,遇到了一个向量运算,我想对向量进行排序。令我惊讶的是!我发现 sort() 函数没有按预期工作,或者可能是我...

回答 1 投票 0

为什么 GNU libstdc++ 与 gcc 耦合,而 GNU libc 不耦合?

我问这个问题的具体原因是因为我正在尝试生成一个 C/C++ 工具链,它可以构建 C++17 代码并生成可以在尽可能多的客户端系统上运行的二进制文件。我需要在

回答 1 投票 0

cmake 检测哪个库 libc++ 或 libstdc++ 配置为用于 g++ 或 clang++

我编写了一个 CMakeLists.txt 来使用 g++ 或 clang++ 构建项目。 为了捕获尽可能多的错误,我使用 libc++ 和 -D_LIBCPP_DEBUG2=2 (对于 clang++)和 libstdc++ 和 -D_GLIBCXX_DEB...

回答 2 投票 0

libstdc++ 通过不同的库静态和动态链接

我的可执行文件动态链接两个库(d1.so 和 d2.so)。 d1.so 静态链接到 libstdc++。 d2.so 动态链接到 libstdc++。 假设首先加载 d1.so,其中 stdlib(动态或

回答 1 投票 0

如何在 macOS Sonoma 上的 VS Code 中#include <bits/stdc++.h>?

我想在VS代码中包含bits/stdc++.h以进行竞争性编程。 我尝试将文件放入 usr/local/include/bits 中,但没有成功。 VS code 告诉我该文件不存在。还有,我...

回答 1 投票 0

u8path 的 libstdc++ 弃用消息建议使用严格的别名违规作为解决方法?

C++20 弃用 std::filesystem::u8path: 在 gcc.godbolt.org 上运行 #包括 std::string foo(); int main() { 自动路径 = std::filesystem::u8path(foo()); } libstdc++ 13 有一个

回答 1 投票 0

哪里可以找到GLIBCXX_3.4.29?

我将 GCC 编译器从 GIT 存储库更新到版本 11。现在我的测试代码(GoogleTest/GoogleMock)抱怨找不到 GLIBCXX_3.4.29。 这不是重复的,请重新打开 一个...

回答 7 投票 0

导入错误:/lib/x86_64-linux-gnu/libstdc++.so.6:找不到版本“GLIBCXX_3.4.29”

我收到错误:(genslm) smrutip@dgx1:~/smruti_project/pyro-cov$ makeanalyze python script/mutrans.py --vary-holdout Traceback(最近一次调用最后一次):文件“/raid/home/smrutip/

回答 1 投票 0

运行时出现“`GLIBCXX_3.4.32'未找到”错误。海湾合作委员会 13.2.0

我在 WSL 中使用 Ubuntu 22.04.3 LTS。 我从源代码成功构建并安装了 GCC 13.2.0。这就是我的配置方式: ../gcc/configure --host=x86_64-pc-linux-gnu --disable-multilib --enable-

回答 1 投票 0

如何更新 libstdc++.so.6 或更改文件以在 Tensorflow、Python 上使用

我在 Apache 服务器 CentOS6 上使用 Python3 和 Tensorflow 1.15。 现在,我正在与这个错误作斗争。 它需要 GLIBCXX_3.4.17 导入错误:/usr/lib64/libstdc++.so.6:版本`GLIBCXX_3.4.17...

回答 2 投票 0

使用GLIBCXX_3.4.29安装gcc-9.5.0?

我使用的是Ubuntu 22.04,需要安装本地gcc-9.5.0(10.x及更高版本不起作用)环境和一些依赖项来编译我自己的软件。环境是通过模块文件加载的...

回答 1 投票 0

gcc 中默认构造内联静态随机数引擎

例如, #包括 结构 stru { //内联静态std::mt19937 rnd;哎呀! 内联静态 std::mt19937 rnd{}; }; int main() { } 我认为这两者之间没有语义差异...

回答 1 投票 0

“未找到版本‘GLIBCXX_3.4.30’”,但在 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 中找到

$ 字符串 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX_3.4.30 GLIBCXX_3.4.30 然而,当在同一个 docker 容器上运行另一个应用程序时: org.postgresql.util.PSQLException:错误:

回答 1 投票 0

使用 Clang 和 CMake 从 macOS 交叉编译到 Raspberry Pi 4

希望CMake/Clang大师可以在这里提供帮助!我正在尝试设置从 macOS (13.4.1) 到运行 Raspberry Pi OS 64 位完整版的 Raspberry Pi 4B 的交叉编译。总体目标是使用类...

回答 1 投票 0

未找到GLIBCXX_3.4.29

我正在尝试将 mujuco 安装到我的 Linux 笔记本电脑上,一切正常,直到我尝试将其导入 python 文件。当我尝试导入它/运行一个已经有 mujuco 的 python 脚本时,我得到......

回答 1 投票 0

我无法使用 apt-get:libstdc++.so.6:无法打开共享对象文件:没有这样的文件或目录

我有 apt 的问题,例如,当我使用 apt-get update 时,我收到此错误: apt-get:加载共享库时出错:libstdc++.so.6:无法打开共享对象文件:没有这样的文件或

回答 0 投票 0

Homebrew 的 LLVM@12 在 macOS 上出现“致命错误:‘bits/stdc++.h’文件未找到”

1.安装LLVM brew install llvm@12 2.创建目标.cpp #包括 // 代码 3.当我运行/opt/homebrew/opt/llvm@12/bin/clang++ dest.cpp -o dest时,我得到: 致命错误:'bits/stdc++...

回答 1 投票 0

当我在 Ubuntu16 中使用字符串命令查找内容时,我没有任何输出

当我在 ubuntu16 中运行这个命令时: 字符串/media/zhanggy/anaconda3/pkgs/libstdcxx-ng-11.2.0-h1234567_1/lib/libstdc++.so.6.0.29 | grep GLIBCXX 我没有任何输出。 这是信息图片...

回答 1 投票 0

标准库函数 abs() 在不同 C++ 编译器上的异常行为

考虑以下程序: #包括 #包括 主函数() { int d = (int)(abs(0.6) + 0.5); printf("%d", d); 返回 0; } g++ 7.2.0 输出 0(见现场演示...

回答 1 投票 0

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