模板函数中的输出向量

2024-04-06

这一段代码报错:

template <class T>
void print_vector(vector<T>& v, string sep)
{
    std::ostream_iterator<T> ostr_it(std::cout, sep) ;
    std::copy(begin(v), end(v), ostr_it);
}

main.cpp:17:30:错误:没有匹配的构造函数来初始化“std::ostream_iterator” std::ostream_iterator ostr_it(std::cout, sep);

我很困惑,因为如果我在模板函数之外执行此操作并直接输出向量,则不会出现错误:

vector<float> result(elements);
std::copy(begin(result), end(result), ostream_iterator<float>(cout, ", "));

怎么了?我需要专门化每个模板函数吗?


由于没有发布答案,我想我会继续。

签名为ostream_iteratorAccept 是一个 C 字符串,而不是一个 C++ 字符串:

std::ostream_iterator(ostream_type& stream, const CharT* delim)

已选定的是隐式转换 to char * from std::string正如所说,并不可取here https://stackoverflow.com/questions/492061/why-doesnt-stdstring-provide-implicit-conversion-to-char,所以你会得到一个错误。

为了让它工作,你可以简单地投射std::string你自己:

std::ostream_iterator<T> ostr_it(std::cout, sep);         // DOES NOT WORK
std::ostream_iterator<T> ostr_it(std::cout, sep.c_str()); // WORKS
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

模板函数中的输出向量 的相关文章

  • JSON.Net 反序列化返回“null”

    我正在使用 JSON Net 反序列化 JSON 字符串 JSON 字符串是 string testJson Fruits Apple color red size round Orange Pro
  • XPATH 查询、HtmlAgilityPack 和提取文本

    我一直在尝试从名为 tim new 的类中提取链接 我也得到了解决方案 给出了解决方案 片段和必要的信息here https stackoverflow com questions 2982862 extracting a table ro
  • 异常堆栈跟踪不显示抛出异常的位置

    通常 当我抛出异常 捕获它并打印出堆栈跟踪时 我会看到抛出异常的调用 导致该异常的调用 导致该异常的调用that 依此类推回到整个程序的根 现在它只向我显示异常所在的调用caught 而不是它所在的地方thrown 我不明白是什么改变导致了
  • 司机和提供商之间的区别

    数据库中的驱动程序和提供程序有什么区别 有没有解释一下 不胜感激 样本 ADO NET driver for MySQL vs providerName System Data EntityClient 来自 MSDN 论坛 驱动程序是安装
  • 将下拉列表与字典绑定

    我将字典绑定到下拉列表 举例来说 我的字典中有以下项目 Test1 123 Test2 321 我希望下拉文本采用以下格式 Test1 Count 123 Test2 Count 321 我沿着以下路径走 但没有运气 MyDropDown
  • 静态类与类的实例

    我有一个静态类 用于访问我的公共属性 整个应用程序的全局属性 和我在应用程序运行期间使用的方法 例如 我在静态类中设置了一些属性 并且在应用程序运行时我可以从属性中获取值 但我可以使用单例模式创建非静态类并以相同的方式使用它 问题 对于我的
  • 如何在win32中使用GetSaveFileName保存文件?

    我编写此代码是为了获取 fileName 来保存我的文件 include stdafx h include
  • 将错误代码映射到 C++ 中的字符串

    将错误代码从枚举映射到字符串的更有效方法是什么 在 C 中 例如 现在我正在做这样的事情 std string ErrorCodeToString enum errorCode switch errorCode case ERROR ONE
  • 如何使用 CSI.exe 脚本参数

    当你运行csi exe 安装了 Visual Studio 2015 update 2 您将得到以下语法 Microsoft R Visual C Interactive Compiler version 1 2 0 51106 Copyr
  • doxygen c++:记录由“using”声明公开的私有继承成员

    作为一个例子 我有以下课程 class A public void methodOne class B private A public Brief description using A methodOne 我还没有找到强制 doxyge
  • ALTER TABLE ... ADD CONSTRAINT 失败时将事务回滚到保存点

    有没有办法在事务中添加检查约束and如果失败回滚到以前的保存点 而不是回滚整个事务 就我而言 当 ALTER TABLE ADD CONSTRAINT 命令失败时 事务无法回滚到保存点 尝试这样做会引发 InvalidOperationEx
  • Autoconf 问题:“错误:C 编译器无法创建可执行文件”

    我正在尝试使用 GNU 自动工具构建一个用 C 编写的程序 但显然我设置错误 因为当configure运行 它吐出 configure error C compiler cannot create executables 如果我看进去con
  • “必须声明标量变量”错误[重复]

    这个问题在这里已经有答案了 必须声明标量变量 Id SqlConnection con new SqlConnection connectionstring con Open SqlCommand cmd new SqlCommand cm
  • 如果“嵌入式”SQL 2008 数据库文件不存在,如何创建它?

    我使用 C ADO Net 和在 Server Management Studio 中创建的嵌入式 MS SQL 2008 数据库文件 附加到 MS SQL 2008 Express 创建了一个数据库应用程序 有人可以向我指出一个资源 该资
  • 将 char 绑定到枚举类型

    我有一段与此非常相似的代码 class someclass public enum Section START MID END vector section Full void ex for int i 0 i section
  • 如何在c linux中收听特定接口上的广播?

    我目前可以通过执行以下操作来收听我编写的简单广播服务器 仅广播 hello int fd socket PF INET SOCK DGRAM 0 struct sockaddr in addr memset addr 0 sizeof ad
  • 使用 C# 动态创建按钮并按预定义的顺序放置它们

    NET 4 5 C 创建 Windows 窗体 我想动态创建和添加按钮并为其分配单击事件 但希望它们以特定的方式动态放置 就像图像一样 我的问题是如何以上述方式动态放置按钮 即 4x4 格式 一行 4 个按钮 4 列 但行数不受限制 是否可
  • 如何提高环复杂度?

    对于具有大量决策语句 包括 if while for 语句 的方法 循环复杂度会很高 那么我们该如何改进呢 我正在处理一个大项目 我应该减少 CC gt 10 的方法的 CC 并且有很多方法都存在这个问题 下面我将列出一些例如我遇到的问题的
  • C++ Boost ASIO 简单的周期性定时器?

    我想要一个非常简单的周期性计时器每 50 毫秒调用我的代码 我可以创建一个始终休眠 50 毫秒的线程 但这很痛苦 我可以开始研究用于制作计时器的 Linux API 但它不可移植 I d like使用升压 我只是不确定这是否可能 boost
  • 嵌入式二进制资源 - 如何枚举嵌入的图像文件?

    我按照中的说明进行操作这本书 http www apress com book view 9781430225492 关于资源等的章节 我不太明白的是 如何替换它 images Add new BitmapImage new Uri Ima

随机推荐

  • 在 AspNetCore 与 TestServer 的集成测试中模拟并解决 Autofac 依赖关系

    我正在使用 AspNetCore 2 2 遵循 更多 此处的文档 https learn microsoft com en us aspnet core test integration tests view aspnetcore 2 2
  • C++ 中的字符串到枚举

    有没有办法将文本文件中的字符串与枚举值相关联 问题是 我有一些枚举值作为字符串存储在文本文件中 我在满足某些条件时即时读取这些值 现在我想将读取的值分配给枚举 最有效的方法是什么 它不需要是最简单的方法 您可以设置一张可以反复使用的地图 t
  • 如何使用 CMake 正确添加包含目录

    大约一年前我问过CMake 中的标头依赖项 https stackoverflow com questions 7461000 handling header files dependencies with cmake 我最近意识到问题似乎
  • 将自定义 MD5 公式与 ARRAYFORMULA 结合使用

    我实现了一个 MD5 公式 如下所述 function MD5 input var rawHash Utilities computeDigest Utilities DigestAlgorithm MD5 input Utilities
  • 如何判断我的应用程序是作为 32 位应用程序还是 64 位应用程序运行?

    如何判断我的应用程序 在 Visual Studio 2008 中编译为Any CPU 是作为 32 位还是 64 位应用程序运行 如果您正在使用 NET http en wikipedia org wiki NET Framework4
  • 如何禁止chrome打开“新窗口”和“标签”?

    他们是否可以通过 Chrome 浏览器设置将互联网上的所有页面保留在一个窗口中 或者我可以用一个插件 插件来做到这一点 当我单击某些链接时 我不希望在新选项卡和 或新窗口中打开网页 如果有人有任何建议请告诉我 谢谢 a href http
  • 在 Jenkins 中运行 Selenium 测试

    我通过 Selenium IDE 记录了一些简单的 Selenium 测试 现在我想在 Jenkins 中运行这些测试 我需要 Jenkins 的哪个插件才能做到这一点 以及如何逐步运行测试 感谢帮助 您可以使用录制的 selenium I
  • std::function 与 lambda 的比较

    如何比较 std function 和 lambda include
  • 改造和持久 cookie 存储

    在改造中实现持久 cookie 存储的最简单方法是什么 现在我正在使用这个 cookieManager new CookieManager cookieManager setCookiePolicy CookiePolicy ACCEPT
  • 字段列表中的 EF4 未知列

    所以 我有点难住了 我一直在使用通用存储库 它工作得很好 它位于实体框架 4 1 之上 我曾多次使用同一行代码来获取一组数据 之前没有任何问题 然而 我的数据库中的这张表似乎抛出了异常 我一生都无法弄清楚如何修复它 这是MySQL数据库中的
  • 为什么我可以在可为空的列上创建带有主键的表?

    以下代码创建一个表 不会引发任何错误 CREATE TABLE test ID INTEGER NULL CONSTRAINT PK test PRIMARY KEY ID 请注意 我无法按预期插入 NULL INSERT INTO tes
  • if constexpr 而不是标签调度

    我想用if constexpr而不是标签调度 但我不知道如何使用它 下面的示例代码 template
  • 使用 argdo 打开多个文件时,vim 中未打开语法突出显示

    我经常从 MacVim 中一次打开整组文件 为此 我通常使用以下命令 args PATTERN argdo tabedit 这会将工作目录中与模式匹配的所有文件加载到参数列表中 然后在单独的选项卡中将它们全部打开 当我执行此操作时 语法突出
  • Django 日志:记录到文件的任何教程

    我正在开发一个 django 项目 但还没有开始 从事该项目的开发人员离开了 在知识转移过程中 有人告诉我所有事件都记录到数据库中 我发现数据库接口对于搜索日志没有用处 有时它们甚至不记录 我可能是错的 我想知道是否有一个简单的教程来解释如
  • 无法循环文件名中带有空格的文件、Windows 批处理文件和图像 magick

    我正在尝试循环一堆文件夹 创建子文件夹 然后循环文件 使用 imagemagick 转换它们并将它们放入新的子文件夹中并重命名 某些文件名称中包含空格并导致错误 我该如何解决此问题 错误信息 convert unable to open i
  • Magento - 如何创建“十进制”属性类型

    我在网上做了一些搜索 但还没有找到这个问题的任何答案 我遇到的情况是 我需要一个十进制值的产品属性 它必须支持负数和正数 并且还必须可排序 由于某种原因 Magento 没有 十进制 属性类型 唯一使用小数值的类型是 Price 但不支持负
  • C++中可以使用字典吗

    我一直在查找 C 中的字典 它们似乎非常有用 并且想知道是否可以在 C 中使用它们 因为我尝试在 C 中搜索字典 但似乎没有与我相同的字典可以找到 是否有某种类型的库可以下载并包含到项目中 或者是否有一个函数可以用不同的名称执行相同的操作
  • Ruby on Rails:跳过种子的“validate_on_create”语句

    我的一个控制器中有一个 validate on create 语句 我希望跳过所有种子数据 有哪些解决方案可以使我的种子文件中的 create 语句跳过此验证 我当前的解决方案是每次运行 rake db seed 时注释掉验证 还有更聪明一
  • Haskell 中的 xor 和 or 有什么区别

    So if xor回报True当且仅当其操作数之一恰好是True这样 xor Bool gt Bool gt Bool xor True True False xor True False True xor False True True
  • 模板函数中的输出向量

    这一段代码报错 template