运行时固定大小 std::vector ?

2024-04-17

性能在我的应用程序中至关重要

我需要类似的东西std::experimental::dynarray http://en.cppreference.com/w/cpp/container/dynarray,因此数组的大小在运行时决定。

所以我考虑使用包装类std::vector,提供其所有功能,但无法调用resize, reserve or push_back。简而言之,所有改变其大小的方法(如果我错过了其中一些,请提醒我)。

所以我开始写这门课:

CCVector.hpp:

template <typename T>
class CCVector{
public:
    CCVector(size_t size);
    T &operator[](typename std::vector<T>::size_type idx);
private:
    std::vector<T> v;
};

CCVector.cpp:

template<typename T>
CCVector<T>::CCVector(size_t size) : v(size){}
template<typename T>
T& CCVector<T>::operator[](typename std::vector<T>::size_type idx){
    return  v[idx];
}

但我认为我必须重新实施every的方法std::vector我需要的!例如begin, end, size等等,我不知道如何实现所有这些......此外,这对维护来说真的很糟糕:一旦我需要一个新方法std::vector我需要重新实现它CCVector.

所有这一切都是因为我想要在运行时固定大小的数组。在不使用非标准的情况下如何解决这个问题std::experimental::dynarray?


使用私有继承,然后使用using声明将您想要的名字引入您的班级。

template<class T>
class MyVector : private std::vector<T>
{
public:
    using std::vector<T>::end;
    // etc
};

(使用私有继承,您不会遇到向量没有虚拟析构函数的问题,这就是大多数人不喜欢从标准容器继承的原因)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

运行时固定大小 std::vector ? 的相关文章

  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 如何在 Adob​​e AEM 中启用 WebDAV?

    我尝试通过 WebDAV 访问 Adob e AEM 但是无法使其工作 我正在运行开箱即用的 crx quickstart 因此我使用端口 4502 和默认工作区 我使用 Windows 资源管理器作为 WebDAV 客户端 可以轻松地连接
  • 如何使用php将数组分成两个相等的部分

    如何在 PHP 中使用 array slice 将数组分成两个相等的部分 这是我的要求 第一个数组包含 0 1200 第二个数组包含 1200 end From array slice 的文档 https www php net array
  • 如何将数据传递到 Angular-strap 弹出窗口

    我试图在悬停在全日历项目上时显示角带弹出框 我正在使用 eventMouseover eventMouseout 回调来显示 隐藏弹出窗口 scope calendarConfig defaultView basicWeek eventMo
  • git push origin master 凭据丢失或无效

    无法再推送到原始主机 git push origin master 几天以来 我卸载了 git 和 Visual Code 并重新安装了它 但没有任何结果 我遇到了同样的错误 Missing or invalid credentials E
  • 如何在同一进程中从不同路径加载到同一库两次?

    我正在编写一个新程序 即使用 OpenSSL 加密数据 我希望我的程序符合 FIPS 标准 为了强制执行 FIPS 模式 我使用 API 进行设置FIPS 模式 集 我还需要将加密的数据传输到第三方设备 设备供应商还提供了一个与设备通信的库
  • 在 C# 中匹配西里尔字母符号

    我有一个巨大的代码文件 其中有很多行 如下所示 Enterprise TextMessageBox Show String Format S n n 0 e gt Message S 我想做的是用我提供的另一个文本找到带有西里尔符号字符串的
  • 复杂 json 中的嵌入表达式未正确替换

    在空手道测试中 我们能够替换 json 中单个键的嵌入表达式 但是当尝试替换 json 的复杂键时它不起作用 输入 json integration serviceData integrationService name integrati
  • 如何在 Eclipse/Java 中的同一工作区中引用另一个项目中的类

    我的 Eclipse ADT Android Java 工作区中有两个项目 MyProject MyProjectAutomatedUITests 在MyProject中有一个包 constants和一个班级ButtonNames java
  • 将div放入MYSQL die

    我有这个 mysql 请求 mysql query query or die mysql error 很简单 但我想改变mysql error 对于这个div div class ui widget div class ui state h
  • 无法使用机器ip连接到mongodb

    已安装Mongo using homebrew 如果我输入mongo在外壳上 它连接到test 但是当我输入ip address本地机器而不是127 0 0 1 mongo host 192 168 1 100 verbose 它给我错误消
  • 告诉程序当没有找到保存数据时要做什么 NSUserDefaults,iPhone

    我已经保存了使用 NSUserDefaults 保存的数据 我的印象是 如果已经没有任何内容保存到密钥中 第一次运行应用程序 它将默认为 0 然而 情况似乎并非如此 这是我所拥有的 To save void viewWillDisappea
  • style css标签会在body中渲染吗?

    我正在使用 CMS 显然它有一个错误 不允许我向其中添加任何内容一篇博客文章 它将所有内容插入正文中 在大多数情况下都可以正常工作 但在如下代码实例中 如果将这种类型的代码放入标签在所有主要浏览器中 IE8 Firefox Chrome 和
  • 如何保护应用程序免受第 3 方 js 库中存在的 XSS 向量的影响?

    我在 Android 移动应用程序中使用各种第 3 方库 如 cordova js jquery jquery mobile mobilizer 等 通过不安全地使用 eval settimeout inner outerhtml 这些库被
  • Hive:转换“yyyy-MM-dd'T'HH:mm:ss.SSS'Z'”中缺少秒数的字符串日期时间

    我使用以下代码将字符串日期时间变量转换为日期时间 但转换后的字符串缺少 SSS 部分 使用的代码 cast FROM UNIXTIME UNIX TIMESTAMP oldtime yyyy MM dd T HH mm ss SSS Z y
  • 如何创建类python中所有可见元素的列表

    我正在使用 python 3 x Selenium WebDriver 我正在制作一个 for 循环来遍历页面的所有元素 限制类中元素的长度 然后打印迭代次数 但它如何获取所有可见和隐藏的元素仅获取页面中的可见元素 要从我正在使用的类中获取
  • Z-index 不适用于 Flex 元素? [复制]

    这个问题在这里已经有答案了 我试图有两列 一列是可以展开并重叠另一列的菜单 但我使用了一个 Flex 元素来包裹这些列 并且我的菜单展开了behind另一个元素 即使具有更大的z index 渲染效果是这样的 main font famil
  • 使用 Clipper 库的平行线

    我在用着CLIPPER http www angusj com delphi clipper php库偏移线并尝试制作平行线 ClipperOffset co new ClipperOffset co AddPath s JoinType
  • 使用jquery从右向左滑动内容

    当您按下 下一步 按钮时 视口会更改内容 两个 并进行转换 我想要的是 我想滑动内容 正如您在演示中看到的那样 使用translateX 200px 能给我渴望的效果 但它开始于0px并前往 200px 我希望每个 div 从红色条带 右
  • 解决“未找到 mongo”和“php_mongo.dll 不是 win32 应用程序”错误

    我已经尝试安装 mongodb 6 个多小时了 但仍然没有成功 我将非常详细地说明这一点 以便希望有人能帮助我完成这项工作 My local comp HP laptop Windows 7 64 bit operating system
  • 运行时固定大小 std::vector ?

    性能在我的应用程序中至关重要 我需要类似的东西std experimental dynarray http en cppreference com w cpp container dynarray 因此数组的大小在运行时决定 所以我考虑使用