- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
转换 boost::shared_array<char>
的最佳方法是什么?到 std::string
?以下代码片段有效,但看起来不是很优雅。
boost::shared_array<char> boostString = DatabaseFileName.GetCString(CZString::eAscii);
std::string stdString;
for(size_t i = 0; boostString[i] != 0; i++)
{
stdString.append(1, boostString[i]);
}
最佳答案
Boost shared array使用 new[]
分配它的数据,这意味着它在内存中都是连续的。这意味着您可以获得指向第一个元素的指针作为 C 风格字符串,您可以从中创建一个 std::string
实例。
这当然需要数据有终止符,或者让您知道“字符串”的长度。
关于c++ - boost::shared_array<char> 到 std::string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43088360/
我有一些遗留代码,如下所示: void* getData(DataType dataType) { switch(dataType) { case TYPE_FLOAT:
如何转换 boost::shared_array至 boost::shared_array ? 最佳答案 由于 shared_array 没有 add_ref 方法,您可以按如下方式模拟它: stru
我有一个用例,每次都需要传递 boost::shared_array。如果缓冲区未完全使用,我想创建一个具有相同内存空间但从日期已写入的点开始的新指针 示例代码: boost::shared_ar
在 Visual C++ 中,我尝试动态分配一些 16 字节对齐的内存,以便我可以使用需要内存对齐的 SSE2 函数。现在这是我分配内存的方式: boost::shared_array aData(n
我有一个共享数组:boost::shared_array myarr(new char[m_length]); 我想重新分配数组。我想创建一个具有所需大小的新 shared_array 并使用 swa
如果我有一个 boost::shared_array (或 boost::shared_ptr ),有没有办法获得 boost::shared_ptr哪个与数组共享? 例如,我可能想写: shared
您将如何遍历 boost::shared_array 中的项目?您会对其执行 get() 并使用原始指针作为迭代器吗? 最佳答案 因为你已经在使用 boost,所以可能是这样的: #include
我最近开始使用智能指针。如果我是正确的,则声明智能指针: shared_array a(new double[n]); 但是如果a被封装在一个类中怎么办呢?目前我正在做如下,但这看起来 super 丑
下面的代码在取消注释时会崩溃,而且 get() 中的 shared_array<> 参数似乎有问题。 至少现在 print() 似乎没有崩溃...... 传递 shared_array<> 参数的正确
我正在为某些类编写一些单元测试。这些类使用另一个 comms_client 来执行网络通信。例如,comms_client 提供了一个 send 方法,它接收一个 boost::shared_arra
我有: message->data = boost::shared_array(new char[100]); 里面装满了数据。 我收到了int length 的新char * data(来自旧的C
我有一个提供 GetBuffer() 的流对象和 GetBufferSize()方法。 GetBuffer方法返回原始 uint8_t指针。我想(按值)将此缓冲区传递给另一个需要 shared_arr
在分析我的应用程序后,我发现 malloc 太多了。我很惊讶 shared_ptr 和 shared_array 为引用计数分配了内存。除此之外,封装引用计数的对象包含两个计数 uses_count
boost::shared_array x(new char const *[n]); 在上面的行中(n 是不大于 100 的整数)我正在创建 char const** ( const char**
我在使用 Boost 共享指针时遇到了一些问题。指针指向的数据在不确定的时间突然被删除。在当前程序中(我尝试过许多其他变体)boost::shared_array retArray 的数据案例后在sw
我有一个构造函数接受参数的类 char* name ,然后有一个成员变量是boost::shared_array m_name; 如何复制该参数 char*name至 m_name ? 最佳答案 使用
转换 boost::shared_array 的最佳方法是什么?到 std::string ?以下代码片段有效,但看起来不是很优雅。 boost::shared_array boostString =
虽然存在与 boost::shared_ptr (QSharedPointer) 等价的东西,但我无法找到类似于 boost::shared_array 的东西>. 当然我可以使用类似的东西 QSha
我想在我的应用程序中使用BOOST 智能指针 进行内存管理。但是我不确定我应该为动态分配的数组 shared_ptr 或 shared_array 使用哪个智能指针。 根据 BOOST 文档从 Boo
Starting with Boost release 1.53, shared_ptr can be used to hold a pointer to a dynamically allocate
我是一名优秀的程序员,十分优秀!