- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 2 IVector
s,我想用一个的所有内容替换另一个的内容。 ReplaceAll
方法似乎可行。
所以我尝试了以下方法:
IVector<IInspectable> my_ivector1 = winrt::single_threaded_vector<IInspectable>({ box_value(L"whatever1") });
IVector<IInspectable> my_ivector2 = winrt::single_threaded_vector<IInspectable>({ box_value(L"whatever2") });
std::array<const IInspectable, 1> arrv{ box_value(L"result") };
my_ivector2.ReplaceAll(arrv);
auto res = unbox_value<hstring>(my_ivector2.GetAt(0)); // This works, res == L"result". The content of my_ivector2 was replaced by the content of arrv.
my_ivector2.ReplaceAll(my_ivector1); // compilation error
编译错误:
cannot convert argument 1 from 'winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>' to 'winrt::array_view<const winrt::Windows::Foundation::IInspectable>'
我希望能够使用 ReplaceAll
将一个 IVector 的所有内容替换为另一个 IVector 的内容。是ReplaceAll
不是正确的方法吗?
最佳答案
由于您使用的是 C++ WinRT 类型,而不是投影向量,因此在上面的简单示例中,您可以使用 get_container() 获取对基础 std::vector 的引用。您需要将变量类型更改为自动而不是 IVector<>。从那里,您可以根据需要使用您喜欢的任何标准库技术将元素从一个向量移动或复制到另一个向量。简单的赋值应该足以复制内容。例如
my_ivector2.get_container() = my_ivector1.get_container();
如果您尝试使用 WinRT 向量,但不知道它们是您的 C++/WinRT 实现,则您需要使用 array_view 复制值。
array_view 和 vector 不可互换,尽管它们看起来应该如此。它们提供略有不同的语义和保证。您需要在第一个容器上使用 GetMany 将值加载到调整为容器大小的 std::vector 之类的东西中,然后用第二个容器调用 ReplaceAll。
本
关于uwp - 如何使用 IVector 的 ReplaceAll 方法将数据从一个 IVector 传输到另一个 IVector?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55611490/
我有 2 IVector s,我想用一个的所有内容替换另一个的内容。 ReplaceAll方法似乎可行。 所以我尝试了以下方法: IVector my_ivector1 = winrt::single
我目前正在 Visual Studio Community 2017 for Windows 10 版本 10.0.16299.0 下开发 Windows 10 UWP C++ 项目。 以下过程:我的
如何从 IVector^ 转换为 Vector^?文档涵盖了隐式工作的相反情况,但是当我尝试隐式转换和编译时,这种情况不会编译,但当我尝试转换它时会引发异常。我查看了引用资料,但无法涵盖这一点。 这样
我是 Tensorflow 和 Theano 的新手。 Tensorflow 中的 Theano.tensor.ivector 等价物是什么? 例如, x = Theano.tensor.ivecto
我是 C++ 编程的新手。这些年来我做过一些 C#,但我不会说我精通它。我正在尝试将一些代码从 native c++ 更改为 C++/CX,并不断遇到很多编译器错误,特别是与 vector 有关的错误
我的 windows 8.1 和 windows phone 8.1 (C#) 通用商店项目使用了一个 windows 运行时组件 (C++),它由一个 C 库和一个为 winrt 环境提供对 C 代
我有一个声明回调接口(interface)的 C# windows phone 8.1 Visual Studio (2013) 项目 public interface ICallBack
我是一名优秀的程序员,十分优秀!