Vector是C++ STL库中的一个非常实用的容器,其本质是一个模板类,可以方便地实现动态数组的功能。通过向尾部插入元素、删除元素等 *** 作,在不确定数据规模的情况下能够灵活地声明和使用数组。
具体地,对于Vector的用法,包括以下基本 *** 作:
1.添加元素:可以使用vector的push_back()函数在Vector的末尾添加元素。
2.删除元素:可以使用vector的erase()函数删除特定位置上的元素。
3.访问元素:可以使用vector的下标 *** 作符、迭代器等方式进行元素的访问。
4.遍历Vector:可以使用for循环、迭代器、算法等方式遍历Vector中的元素。
需要注意的是,Vector中存储的元素类型必须相同,同时也可以自定义类型。此外,Vector还支持动态改变大小、排序、查找、修改等高级 *** 作。
ArrayList会比Vector快,他是非同步的,如果设计涉及到多线程,还是用Vector比较好一些import java.util.*
/**
* 演示Vector的使用。包括Vector的创建、向Vector中添加元素、从Vector中删除元素、
* 统计Vector中元素的个数和遍历Vector中的元素。
*/
public class VectorDemo{
public static void main(String[] args){
//Vector的创建
//使用Vector的构造方法进行创建
Vector v = new Vector(4)
//向Vector中添加元素
//使用add方法直接添加元素
v.add("Test0")
v.add("Test1")
v.add("Test0")
v.add("Test2")
v.add("Test2")
//从Vector中删除元素
v.remove("Test0")//删除指定内容的元素
v.remove(0)//按照索引号删除元素
//获得Vector中已有元素的个数
int size = v.size()
System.out.println("size:" + size)
//遍历Vector中的元素
for(int i = 0i <v.size()i++){
System.out.println(v.get(i))
}
}
}
用stl的算法find_if,functor做谓词,感觉更简练一些#include <iostream>
#include <string>
#include <vector>
using namespace std
struct Table {
Table(const int n, const string&s, const int c):NUM(n),CI(s),count(c){}
int NUM
string CI
int count
}
class TheTable {
int NUM
public:
TheTable(int i):NUM(i) {}
bool operator()(Table&t) {
return t.NUM == NUM
}
}
int main () {
std::vector<Table>myvector
Table t0(1, "hello", 2), t1(2, "world", 3)
myvector.push_back(t0)
myvector.push_back(t1)
for (int i=0i<3++i) {
vector<Table>::iterator it = find_if(myvector.begin(), myvector.end(), TheTable(i))
if (it == myvector.end())
cout <<"Not found" <<endl
else {
std::cout <<"MyTable " <<(*it).CI <<'\n'
++(*it).count
}
}
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)