cuốn sách gpt4 ai đã làm

android — Trình vòng lặp cho vectơ không thể xử lý vectơ một chiều

In lại Tác giả: Walker 123 更新时间:2023-11-28 03:43:56 27 4
mua khóa gpt4 Nike

Trong chương trình của tôi, tôi có một vectơ số nguyên. Bây giờ tôi muốn lấy một vectơ từ một vectơ vectơ và thao tác trên nó trong một vùng chứa vectơ khác, nhưng tôi gặp lỗi...

|error: conversion from '__gnu_cxx::__normal_iterator > >' to non-scalar type 'std::vector >' requested|

我正在尝试做的一个例子如下....

#include 
sử dụng không gian tên std;

vector<> > k (13,5);

void some_funct() {
vector new_v (k[2].begin(), k[2].end()); //This line is what throws the error
//here I do some stuff with new_v (e.g. sort it)
}

我不确定我做错了什么。我尝试了一些事情,比如将 begin() 和 end() 迭代器分配给 const 迭代器类型... vector::const_iterator it = k[2].begin();但这也不起作用。

这应该可行(因为 k[x] 将是一个 vector )但我不知道出了什么问题。感谢您的帮助!

biên tập:

修改我的代码后,我发现实际上有一个错误。而不是做 vector new_v (k[2].begin(),k[2].end());我做了vector new_v = (k[2].begin(),k[2].end()); .

我要感谢 Rob 让我主动将我的代码复制并粘贴到 SO 中,在那里我发现了我的错误。

感谢您的帮助!

câu trả lời hay nhất

很难知道,因为您还没有将您的实际代码发布到问题中。我怀疑您将项目中的代码错误地复制到了 Stack Overflow 中。

您项目中的违规行如下所示:

vector new_v = (k[2].begin(), k[2].end()); 

注意额外的 =.

bạn đang sử dụng vector::iterator 类型的表达式初始化 new_v,这将不起作用。但是,您在 SO 中输入的语句Sẽ起作用:

vector new_v (k[2].begin(), k[2].end()); 

这也是:

vector new_v = vector(k[2].begin(), k[2].end());

或者其中之一:

vector new_v(k[2]);
vector new_v = k[2];

Nhìn thấy https://ideone.com/uK8Xg以及相应的错误信息。

关于c++ - vector vector 的迭代器无法处理一维 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8283423/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress