
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
cout << "Vector for string" << endl;
const string str[] = { "The", "vector", "for", "strings" };
vector < string > svec(str, str + 4);
vector < string >::iterator its; // iterator for the string vector
for (its = svecbegin(); its != svecend(); its++)
cout << its << " "; // dereference the iterator to get the string
cout << "\n";
return 0;
}
( ++( lkbegin() ) )
不能吧,我试了的
lkpush_back(1);
lkpush_back(2);
lkpush_back(3);
cout << "lk:" << (++(lkbegin())) << endl;
输出结果是2
不能吧 你用什么编译器阿,我用的VS2005
vector可以像数组一样访问,所以你可以用vector[1],vector[2],这样的方式去访问。或者可以使用迭代器vector::iterator去访问,这里就不具体介绍了。
可以使用迭代器it = Intend() - 1即可实现。
vector<int> a;
vector<int>::iterator iter=aend();//迭代器指向容器的最后一个元素的后一个位置
获得容器最后一个元素:
cout<<--iter//最后一个元素的值
<<aback()// 最后一个元素的值
<<a[asize()-1];//最后一个元素的值
取个指针然后在 memory 窗口中查看。
举个例子
std::vector<int> vi;
int pvi = &vi[0];
在这里使用断点,然后把pvi地址放到 memory 窗口里头可以直接查看整个数组的内存数据;把 pvi[0],pvi[1],放到watch窗口里头可以查看具体某个数值。
Systemoutprintln(((String) sget(0))charAt(0));
另:使用Vector最好加个泛型 Vector<String>,这样可以避免强制转换
先对两个vector中的元素都按从大到小的顺序排序
然后定义两个iterator,分别指向两个vector的头部
vector<int> first;
vector<int> second;
vector<int>::iterator poiFir;
vector<int>::iterator poiSec;
poiFir=firstbegin();
poiSec=secondbegin();
然后循环直到poiFir指向first的尾部或poiSec指向second的尾部
每次循环的内部:
判断poiFir和poiSec的大小
(1)若相等,则为相同的元素,记录此值(可以另建一个vector<int> save用于存放相等的值,savepush_back(poiFir)),再将poiFir++;poiSec++;
(2)若poiFir大于poiSec的值,则将poiSec++;
(3)若poiFir小于poiSec的值,则将poiFir++;
循环结束后,save中存储的值即为两个vector中相等的值
时间效率为两个vector中元素个数的和
说具体些呀,包含的是什么元素
vector中的元素是用get(i);方法取出来的,得到Object对象,你再根据自己的需要,把它强转成你要的类型,再调用那个类中方法取出来,就得到了呀,基本跟二楼的兄弟说的一样
以上就是关于如何获得vector向量中元素的地址全部的内容,包括:如何获得vector向量中元素的地址、(C++)我想取vector容器.begin()后一个元素要怎么做啊、c++ vector容器怎么输出某个元素可以用++,--取元素的位置吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)