GNpoints<<QPointF(jindu,weidu);写入和 if(GNpoints.size()>2) { for(int i = 0; i < GNpoints.size() - 1; i++) { QPointF point0(GNpoints[i].x(),GNpoints[i].y()); QPointF point0c(GNpoints[i+1].x(),GNpoints[i+1].y());读出,对这个全局变量QVector<QPointF> GNpoints;进行安全判断
时间: 2023-11-27 08:51:13 浏览: 30
对于写入操作,可以在 GNpoints.push_back(QPointF(jindu,weidu)); 之前加上一个判断,例如:
```
if (jindu >= -180.0 && jindu <= 180.0 && weidu >= -90.0 && weidu <= 90.0) {
GNpoints.push_back(QPointF(jindu, weidu));
}
```
这样可以确保只有在经度和纬度在合法范围内时才会将点加入到 GNpoints 中。
对于读出操作,可以先检查 GNpoints 是否为空,如果不为空再进行遍历,例如:
```
if (!GNpoints.isEmpty() && GNpoints.size() > 2) {
for (int i = 0; i < GNpoints.size() - 1; i++) {
QPointF point0(GNpoints[i].x(), GNpoints[i].y());
QPointF point0c(GNpoints[i+1].x(), GNpoints[i+1].y());
// do something with the points
}
}
```
这样可以确保只有在 GNpoints 不为空且至少包含 3 个点时才会进行遍历。
相关问题
GNpoints<<QPointF(jindu,weidu);写入和 if(GNpoints.size()>2) { for(int i = 0; i < GNpoints.size() - 1; i++) { QPointF point0(GNpoints[i].x(),GNpoints[i].y()); QPointF point0c(GNpoints[i+1].x(),GNpoints[i+1].y());读出,对这个全局变量QVector<QPointF> GNpoints进行安全判断
对于写入操作,可以在调用`GNpoints<<QPointF(jindu,weidu);`之前进行安全判断,例如:
```
if (jindu >= 0 && jindu <= 180 && weidu >= 0 && weidu <= 90) {
GNpoints << QPointF(jindu, weidu);
}
```
这样可以确保只有在经度和纬度在合理范围内时才将点写入`GNpoints`中。
对于读出操作,可以在读取之前判断`GNpoints`的大小是否符合要求,例如:
```
if (GNpoints.size() > 2) {
for (int i = 0; i < GNpoints.size() - 1; i++) {
QPointF point0(GNpoints[i].x(),GNpoints[i].y());
QPointF point0c(GNpoints[i+1].x(),GNpoints[i+1].y());
// 进行其他处理
}
}
```
这样可以确保`GNpoints`中至少有3个点,才能进行后续的处理。
全局变量QVector<QPointF> GNpoints; 的单线程GNpoints.append(QPointF(jindu,weidu));写入操作怎么安全判断,具体代码
在单线程中,`QVector` 的 `append` 操作是线程安全的,因为它是在同一线程中执行的。但是,在多线程环境下,`QVector` 的写入操作需要进行安全判断,以避免多个线程同时写入导致数据不一致的情况。
你可以使用 `QMutex` 来进行线程安全的写入操作。具体代码如下:
```
// 在头文件中定义全局变量 GNpoints 和互斥锁 mutex
extern QVector<QPointF> GNpoints;
extern QMutex mutex;
// 在写入操作中获取互斥锁并进行写入操作
mutex.lock();
GNpoints.append(QPointF(jindu,weidu));
mutex.unlock();
```
在其他线程中访问 `GNpoints` 时,也需要获取互斥锁进行读取操作,以确保数据的一致性。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)