qt的QVector<T> *myvalue =t_cache.take(key);将myvalue的值给QVector<T> t;
时间: 2024-02-25 10:55:20 浏览: 57
可以使用以下代码将 `myvalue` 的值给 `QVector<T> t`:
```cpp
QVector<T> t = *(t_cache.take(key));
```
这将会从 `t_cache` 中取出键为 `key` 的值,并将其拷贝到 `t` 中。注意,这里使用了 `QVector<T>` 的拷贝构造函数,因此 `t` 中存储的是 `myvalue` 指向的 `QVector<T>` 对象的副本,而不是指向同一个对象的指针。
相关问题
QVector<T> *myvalue =t_cache.take(key);将myvalue的值给map<QString,QVector<T>>
Light m_trafficLight;
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnBnClickedStartButton();
DECLARE_MESSAGE_MAP()
};
```
TrafficLightDemoDlg.cpp
```可以使用以下代码将 `myvalue` 的值给 `map<QString,QVector<T>>`:
```cpp
map[key] = *c++
#include "pch.h"
#include "framework.h"
#include "TrafficLightDemo.h"
#include "TrafficLightDemoDlg.h"
#includemyvalue;
```
这将会将 `myvalue` 指向的 `QVector<T>` 对象拷贝到 `map` "afxdialogex.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
CTrafficLightDemoDlg::CTrafficLight 中对应的键值 `key` 中。注意,这里使用的是 `map` 的下标运算符 `[]DemoDlg(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_TRAFFICLIGHTDEMO_DIALOG, pParent), m_hIcon(nullptr)
{
}
void CTrafficLightDemoDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange`,因此如果 `key` 不存在于 `map` 中,会自动插入一个新的键值对。如果(pDX);
}
BEGIN_MESSAGE_MAP(CTrafficLightDemoDlg, CDialogEx)
ON_WM_PAINT()
ON_WM_QUERYDR不希望插入新的键值对,可以使用 `map` 的 `insert` 函数:
```cpp
map.insert(key,AGICON()
ON_BN_CLICKED(IDC_START_BUTTON, &CTrafficLightDemoDlg::OnBnClickedStartButton)
END_MESSAGE *myvalue);
```
这将会将 `myvalue` 指向的 `QVector<T>` 对象拷贝到 `map_MAP()
BOOL CTrafficLightDemoDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 设置应用程序图` 中对应的键值 `key` 中,但如果 `key` 已经存在于 `map` 中,那么这个操作不会有任何效果。
error: conversion from 'QVector<SP104>*' to non-scalar type 'QVector<SP104>' requested QVector<SP104> myvalue =t_cache.take(key)
这个错误的原因是你在将一个指向 `QVector<SP104>` 的指针转换为 `QVector<SP104>` 类型时出现了错误。这是因为 `QVector<SP104>` 是一个非标量类型,不能直接进行转换。
要解决这个错误,你需要使用解引用操作符 `*` 来访问指针指向的对象,然后将其复制到一个新的 `QVector<SP104>` 对象中,像这样:
```
QVector<SP104>* ptr = ...; // 指向 QVector<SP104> 的指针
QVector<SP104> myvalue = *ptr; // 复制指针指向的对象到一个新的 QVector<SP104> 对象中
```
这样就可以避免编译器的类型转换错误了。
阅读全文