- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
函数 advance()
的定义是:
template<class InIt, class Dist>
void advance(
InIt& it,
Dist n
);
当我在我的代码中使用这个函数时:
string strArr[10];
strArr[0] = string("dd");
strArr[1] = string("gg");
strArr[2] = string("tt");
const vector<string> vecStr(strArr, strArr+6);
advance(vecStr.begin(), 2);
cout<<*(vecStr.begin())<<endl; // the output is dd
你知道函数 advance()
中的第一个参数是引用,所以在 advance(vecStr.begin(), 2); 之后
, verStr.begin()
应该指向 vecStr[2]
。但是从输出中我们发现 vecStr.begin()
指向 str[0]
。
我想知道为什么?
最佳答案
advance(vecStr.begin(), 2);
cout<<*(vecStr.begin())<<endl; // the output is dd
您正在使用两个不同的迭代器,其中一个用于 advance
,另一个用于打印。
要使您的代码正常工作,请使用 advance
和 cout
在同一个迭代器上
auto iter = vecStr.begin();
advance(iter , 2);
cout << *iter << endl;
只是在您的原始代码中添加注释,advance(vecStr.begin(), 2);
实际上不会编译,至少如果您使用严格的编译器设置。 vecStr.begin()
返回一个临时对象,该对象不能绑定(bind)到 std::advance
的第一个参数,它是一个左值引用。
此外,std::vector::begin()
逻辑上返回 vector 内实际开始迭代器的拷贝,而不是对它的引用。这意味着您对返回的迭代器所做的任何操作都不会反射(reflect)到 vector 内的 begin 迭代器。我在这里谈论的是迭代器,而不是它们指向的元素。
关于c++ - 关于STL的进展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18158538/
我正在创建一个必须使用system(const char*)函数来完成一些“繁重工作”的应用程序,并且我需要能够为用户提供粗略的进度百分比。例如,如果操作系统正在为您移动文件,它会为您提供一个进度条,
你好,我正在使用 post_controller 钩子(Hook)来验证用户是否登录但是当验证失败时,我将用户重定向到登录 Controller ....现在的问题是当它重定向到默认 Controll
你好,我正在使用 post_controller 钩子(Hook)来验证用户是否登录但是当验证失败时,我将用户重定向到登录 Controller ....现在的问题是当它重定向到默认 Controll
是否可以显示页面加载需要多长时间。 @ 当我向服务器发送 post 请求时,我使用 post 通过 $ajax 发送它,并且 beforeSend 显示一条消息说我们正在加载您的页面。但是有时它会卡在
我有一个案例,我可能需要通过 WebSockets 向客户端发送 500KB - 1MB 的数据。因此,我想知道是否可以跟踪客户端接收到多少数据的进度。这样,当通过较慢的连接进行连接时,应用程序不会出
在我的应用程序中,我使用 LZMA SDK 压缩了大约 400Mb 的数据。当然,这需要一些时间。即使在大量谷歌搜索之后,我也无法找到任何有关如何获取压缩过程实时进度信息的信息。这是通过一些回调函数还
是否可以在 Jupyter Notebook 中看到 GridSearchCV 的进度?我正在 python 中运行这个脚本: param_grid = {'learning_rate': [0.05
我有一个工作文件上传表单,它使用 XMLHttpRequest 2 将文件上传到 Transloadit(一种文件处理服务)。进度事件在 Firefox 和 Chrome 中正确触发,适用于桌面和 A
这里很沮丧。我不是数据库管理员,但可以绕过。我正在针对 Progress OpenEdge 数据库编写一些 ODBC 查询,我们只能查看该数据库。很长一段时间以来都没有出现任何问题,直到最近他们更改了
如何获取 AFHTTPRequest 的进度?我试过在网上搜索。 我正在使用: AFHTTPRequestOperationManager *manager = [AFHTTPRequestO
有人知道这是否可行,或者有使用 Node.js 连接到 SonicMQ 代理的示例吗?我无法在网上找到任何信息或示例。 最佳答案 我建议使用 Sonic Connect 公开休息服务(需要 ESB)或
我是一名优秀的程序员,十分优秀!