IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 3.3 vector - C++ primer 笔记 -> 正文阅读

[C++知识库]3.3 vector - C++ primer 笔记

vector

标准库类型vector表示对象的集合,能容纳绝大多数类型的对象。

#include <vector>
using std::vector;

定义和初始化

vector<T> v1;			//
vector<T> v2(v1);		//
vector<T> v2 = v1;		//
vector<T> v3(n, val);	//
vector<T> v4(n);		//
vector<T> v5{a,b,c... };//
vector<T> v5={a,b,c...};//

()与{}

用圆括号表示用括号内提供的值来构造vector对象
用花括号表示用括号内提供的值来列表初始化vector对象,初始化尽可能把花括号的值当成是元素初始值

vector<int> v1(10);		//v1中有10个元素,每个值为0
vector<int> v2{10};		//v1中有1个元素,值为10
vector<int> v3(10,1);		//v1中有10个元素,每个值为1
vector<int> v2{101};		//v1中有2个元素,值为10,1

当列表初始化无法执行时,会考虑其他初始化方式

vector<string> v5{"hi"};		//列表初始化:v5中一个元素
vector<string> v6("hi");		//错误,不能用字面值构建vector对象
vector<string> v7{10};			//v7中10个默认初始化的元素
vector<string> v8{10"hi"};	//v8中10个值为"hi"的元素

vector操作

v.empty()		//是否为空
v.size()		//返回元素个数
v.push_back(t)	//尾部添加元素t
v[n]			//返回v中第n个位置元素的 **引用**
v1 = v2			//将v2的元素拷贝 替换v1的元素
v1 = {a,b,c...}	//用列表中的拷贝 替换v1中的元素
v1 == v2		//元素数量相同且对应位置值相同时 为true
v1 != v2		//
<, <=, >, >=	//字典顺序(元素可比较时,才能比较vector对象的大小)

vector不能用下标的方式添加元素

习题

3.14

void q3_14(){
	int i;
	vector<int> v;
	while(cin>>i)
		v.push_back(i);
}

3.15

void q3_15(){
	string s;
	vector<string> v;
	while(cin>>s)
		v.push_back(s);
}

3.17

void q3_17() {
	string s;
    char c1;
	vector<string> v;
    while ((cin >> s).get(c1)) {
        if (c1 == '\n')
            break;
		v.push_back(s);
    }
	for (auto &i : v) {
		for(auto &c :i)
			c=toupper(c);
	}
	for (auto &i : v)
		cout << i << endl;
}
void q3_17() {
	vector<string> vctr;
	string s;
	decltype(vctr.size()) index = 0;
	while (cin >> s){
		for (auto& c : s)
			c = toupper(c);
		vctr.push_back(s);
		cout << vctr[index] << endl;
		index += 1;
	}
}

3.19

vector<int> v(10,42);
vector<int> v{42, 42, 42, 42, 42, 42, 42, 42, 42, 42};

3.20
(网上找了一下怎么跳出cin的那个while循环)

void q3_20(){
    int s;
    char c1;
    vector<int> v;
    while ((cin >> s).get(c1)) {
        v.push_back(s);
        if (c1 == '\n')
            break;
    }
    size_t size = v.size();
    for (auto i = 0; i<size - 1; ++i) {
        cout << v[i] + v[i + 1]<<" ";
    }
    cout << endl;
    for (auto i = 0; i < size / 2; ++i) {
        cout << v[i] + v[size - i - 1] << " ";
    }
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-30 12:34:13  更:2021-07-30 12:34:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 8:00:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码