c++ Primer 第三章 字符串、向量和数组
3.1 using声明
略
3.2 string
3.2.1 string定义和初始化
string s1 = "s1";
string s2(10, 'a');
string s3("s3");
string s4 = "s4"; //拷贝初始化
string s5("s5"); //直接初始化
string s6(6, 's'); //直接初始化
3.2.2 string对象操作

读写string对象
#include <iostream>
#include <string>
using std::string;
using std::cin;
using std::cout;
using std::endl;
int main() {
string s;
cin >> s;
cout << s << endl;
return 0;
}
不能读取到空格,输入"Hello World",返回"Hello"
getline读取一整行
#include <iostream>
#include <string>
using std::string;
using std::cin;
using std::cout;
using std::endl;
int main() {
string s;
getline(cin, s);
cout << s << endl;
return 0;
}
string相加
#include <iostream>
#include <string>
using std::string;
using std::cin;
using std::cout;
using std::endl;
int main() {
string s1 = "Hello ";
string s2 = "World";
string s3 = s1 + s2;
cout << s3 << endl;
return 0;
}
string遍历
#include <iostream>
#include <string>
using std::string;
using std::cin;
using std::cout;
using std::endl;
int main() {
string s1 = "Hello ";
string s2 = "World";
string s3 = s1 + s2;
for (auto c : s3)
cout << c << endl;
return 0;
}
3.3vector
3.3.1 vector定义和初始化
#include <iostream>
#include <vector>
#include <string>
using std::string;
using std::vector;
using std::cin;
using std::cout;
using std::endl;
int main() {
vector<int> v1 = {1, 2, 3};
vector<int> v2(v1); //复制V1到V2
vector<int> v3(10, 1); //V3包含了10个1
vector<string> v4{"s1", "s2", "s3"};
vector<int> v5(10, 1); // 包含10个1
vector<int> v6{10, 1}; // 包含10和1
vector<string> v7{10} // 10个空字符
vector<string> v7{10, "hi"} // 10个hi
return 0;
}
3.3.2 vector添加元素
push_back 将元素添加到尾部
#include <iostream>
#include <vector>
#include <string>
using std::string;
using std::vector;
using std::cin;
using std::cout;
using std::endl;
int main() {
vector<int> v1;
for (int i = 0; i < 100; i ++)
v1.push_back(i);
for (int i = 0; i < 100; i ++)
cout << v1[i] << " ";
return 0;
}
3.3.3 vector其他操作

3.4 迭代器
略
3.5 数组
3.5.1 数组定义和初始化
int arr[10] = {1, 2, 3};
不允许拷贝和赋值
3.5.2 访问数组元素
略
3.5.3 指针和数组
#include <iostream>
#include <string>
using std::string;
using std::vector;
using std::cin;
using std::cout;
using std::endl;
int main() {
string nums[] = {"one", "two", "three"};
string *p1 = &nums[0];
string *p2 = nums; //与上一行等价
++p2; //p2指向nums[1]
return 0;
}
3.6 多维数组
数组的数组
3.6.1 多维数组的定义与初始化
int main() {
int a[3][4] = {
{0, 1, 2, 3},
{4, 5, 6, 7},
{8, 9, 10, 11}
};
return 0;
}

浙公网安备 33010602011771号