C++的字符串

#include "project4.h"
#include <cstdio>//stdio.h
#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main()
{
	//int v[]{ 12,13,14,15,16,18 };
	//for (auto x:v) //把v的每一个值考入x中 
	//{
	//	cout << x << endl;
	//}
	//cout << "-----------------------" << endl;
	//for (auto x : {1,2,3,4,65,77,88})
	//{
	//	cout << x << endl;
	//}
	//cout << "-----------------------" << endl;
	//for (auto &x : v) //x就相当于v 引用型 指针
	//{
	//	cout << x << endl;
	//}

	//char str[100] = "i love you";//c语言方法
	//string s1; //默认初始化
	//string s2 = "i love you";
	//string s3 = ("i love you");
	//string s4 = s2;
	//int num = 6;
	//string s5(num, 'a');//6个 'a'
	//
	//cout << s5.length() << endl;
	//cout << s5.size() << endl;
	//cout << s3[5] << endl;

	vector<int> intList; //C# 中的泛型
	vector<string> stringList;
	vector<string> stringList2(stringList);//拷贝
	vector<string> stringList3 = stringList;//拷贝
	vector<string> stringList4 = { "abc","dce" };//初始化
	vector<int> str1(15, 200); //创建15个200的字符串 
	
	vector<string> str2(10);
	vector<string> str3{ "10" };

	stringList.push_back("abcde");
	stringList.push_back("fghij");
	stringList.push_back("klmn");

	for (size_t i = 0; i < str1.size(); i++)
	{
		cout << str1[i] << endl;
	}
	cout << "--------------------------------" << endl;
	for (auto &str1 :str1)
	{
		str1 *= 2; //所有元素乘以2
	}
	cout << "--------------------------------" << endl;
	for (auto str1 : str1)
	{
		cout << str1 << endl;  //相当于for each  str1 *=2会报错
	}
	cout << "--------------------------------" << endl;

	//for (auto str1 : str1)
	//{
	//	str1.push_back(200); //会报错
	//	cout << str1 << endl;
	//}


	//for (size_t i = 0; i < stringList.size(); i++)
	//{
	//	cout << stringList[i] << endl; //abcde 		fghij 		klmn
	//}

	vector<string> stringList2(stringList);//拷贝
	vector<string> stringList3 = stringList;//拷贝




	//C++中 内存详细分为5个区域:
	//(1)栈  一般是函数内部的局部变量,动态存储区,由编译器自动存储/分配和释放
	//(2)堆  程序员malloc/new 分配,用free/delete释放。忘记释放后,系统会自动回收
	// (3) 全局/静态变量:放全局/静态变量 static。 程序结束后系统释放
	// (4) 常量存储区
	// (5)  程序代码区

	//栈和堆的区别
	//(1) 栈 空间 有限。 这是系统int a = 4; 分配速度快,程序员控制不了。
	//(2) 堆 :只要不超出实际物理内存,在操作系统允许分配的最大内存大小之内,都可以进行分配。
	//在c中用malloc和free()分配和释放,这两者是函数。memory allocation:动态内存分配
}
上一篇:【2021年蓝桥杯Java-B组省赛(第二场)题解】


下一篇:【题解】《算法零基础100讲》(第41讲) C语言 排序 API