c++中vector的at函数是怎么使用啊 ?代表什么值啊?

 我来答
linwenb63
推荐于2017-04-17 · TA获得超过147个赞
知道答主
回答量:46
采纳率:0%
帮助的人:45.2万
展开全部

at函数和[]函数使用可以说是一模一样. 都是为了访问对应index中存储的数据, 如果index大于vector的size. 两者都是抛出out_of_range的exception.

#include <iostream>
#include <vector>
using namespace std;
int main ()
{
  vector<int> myvector(10);   // 10 zero-initialized ints

  // assign some values:
  for (size_t i = 0; i < myvector.size(); i++)
    myvector.at(i) = i;

  for (size_t i = 0; i < myvector.size(); i++)
    cout << myvector.at(i)  << ' ' << myvector[i] << endl;
    
  //cout << myvector.at(20);    //    out_of_range_exception

  return 0;
}
追问
可是这个vector里面的size的值是事先知道的么?有的是不知道的额啊
追答
size可以通过size()函数获得. 例如myvector.size()返回一个int.

对vector进行的操作要有意识, 里面加了数据, 删了数据. !! 每次访问前要检查 !!.

编程的时候. 除非必须, 尽量避免直接写一个数字上去. 例如避免 v[20]. 因为很可能会出现异常.
weicungong
2019-11-08 · TA获得超过167个赞
知道答主
回答量:24
采纳率:100%
帮助的人:7.5万
展开全部
vector::at(x)返回x位置的数据。
和【x】不一样,这个函数有可能抛出out_of_range错误。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小鑫聊两性
2014-11-01 · 与大家聊聊年轻男女之间的那些事儿
小鑫聊两性
采纳数:184 获赞数:921

向TA提问 私信TA
展开全部
XXX.at(idx);

传回索引idx所指的数据,如果idx越界,抛出out_of_range。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一树的果
2014-11-01 · 超过26用户采纳过TA的回答
知道答主
回答量:80
采纳率:100%
帮助的人:35万
展开全部
得到编号位置的数据
更多追问追答
追问

能举个具体的实例么?比如说这个程序什么意思啊?这里面的at函数是什么意思啊

追答
buf_value.at(i);它会返回在第i个位置的数据,也就是Tip_Pos类型的,然后赋值给pos,然后标准输出pos.x,pos.y。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式