https://gitee/programmercarl/leetcode-master?_from=gitee_search
- vector遍历和map遍历
std::unordered_map<int64_t,double>& items = GetMap();
for (auto& iter: items){
cout<iter.first;
}
std::vector<int64_t> vec_temp;
for (auto& iter: recall_item) {
vec_temp.push_back(iter.first);
}
for (auto& id: vec_temp) {
cout<<id<<endl;
}
set<int > set1 ;
set1.insert(1);
set1.insert(2);
for(auto &it : set1){
cout<<it<<endl;
}
- set遍历
#include <iostream>
#include<set>
using namespace std;
int main()
{
int numList[6]={1,2,2,3,3,3};
/ /1.set add
set<int> numSet;
for(int i=0;i<6;i++){
//2.1insert into set
numSet.insert(numList[i]);
}
//2.travese set
for(set<int>::iterator it=numSet.begin() ;it!=numSet.end();it++){
cout<<*it<<" occurs "<<endl;
}
//3.set find useage
int findNum=1;
if(numSet.find(findNum)!=numSet.end())
{
cout<<"find num "<<findNum<<" in set"<<endl;
}else{
cout<<"do not find num in set"<<findNum<<endl;
}
//set delete useage
int eraseReturn=numSet.erase(1);
if(1==eraseReturn){
cout<<"erase num 1 success"<<endl;
}else{
cout<<"erase failed,erase num not in set"<<endl;
}
return 0;
}
- 带有pair的vector遍历
#include <iostream>
using namespace std;
#include <vector>
int main(){
std::vector<std::pair<int64_t,double>> vec_temp;
vec_temp.push_back(std::make_pair(5,5.0));
vec_temp.push_back(std::make_pair(4,4.0));
vec_temp.push_back(std::make_pair(3,3.0));
vec_temp.push_back(std::make_pair(2,2.0));
for(auto &item : vec_temp){
cout<<item.first<<" "<<item.second<<endl;
}
}
-
在for循环中删除元素
https://blog.csdn/u013288190/article/details/122167859 -
有坑
在刷leetcode的2131. 连接两字母单词得到的最长回文串这题中,发现这个坑
string temp = "";
temp=temp+iter.first[1]+iter.first[0]; //这么写是对的
string temp1 = "";
temp1 = iter.first[1]+iter.first[1]; //这么写是错的
6 创建二维vecotr
//创建row行col列的二维vector
vector<vector<int>> b(row,vector<int>(col));
vector<vector<int>> vectors = {
{0,10,5},
{9,0,6},
{2,13,0}
};
7 二维vector中使用lambda排序
sort(vec.begin(),vec.end(),[](vector<int>a, vector<int> b){
return a[1]>b[1];
});
8 C++写文件
#include<fstream>
std::string request = context->m_request->request().value();
ofstream write;
write.open("result_105.txt", ios::app);
write <<request << endl;
write.close();
vecotor的demo
- insert
#include <iostream>
#include<vector>
using namespace std;
void show_vec(vector<int>& vec){
for(int i=0;i<vec.size();i++){
cout<<vec[i]<<" ";
}
cout<<endl;
}
int main(){
vector<int> res(3);
res[0]=0;
res[1]=1;
res[2]=2;
res.insert(res.begin(),3); //3 0 1 2 在0号元素前面插入
show_vec(res);
res.insert(res.begin()+1,4); //3 4 0 1 2 在1号元素前面插入
show_vec(res);
res.insert(res.end(),5); //3 4 0 1 2 5 在最后一个元素后面插入
show_vec(res);
}
- 初始化
vector<int>list={1,2,3,4,5,6,7.0};
- shared_ptr的拷贝
//----------------------test.cpp------------------------
#include <iostream>
#include <memory>
using namespace std;
class Bike{
public:
int price;
};
int main()
{
Bike* bi = new Bike();
(*bi).price = 100;
shared_ptr<Bike> p1 = make_shared<Bike>(*bi);
//输出 p1 指向的数据
cout << "(*p1).price is:" << (*p1).price << endl;
(*p1).price = 200;
cout << "(*p1).price is:" << (*p1).price << endl;
cout << "bi.price is:" << (*bi).price << endl;
return 0;
}
//--------------------终端的命令
g++ --std=c++11 test.cpp
//--------------------终端的结果
$ ./a.out
(*p1).price is:100
(*p1).price is:200
bi.price is:100
更多推荐
C++好用的代码
发布评论