新生入门:
1:结构体
结构体的创建:
struct abc{
int a;
char b;
};
结构体的命名:
abc hh;
结构体的引用:
hh.a;
2:vector
#include<iostream>
#include<vector>
using namespace std;
int main(){
int n,x;
cin>>n;
vector<int> a(n,5);//此表示有n个元素且全都初始为5
// for(int i=1;i<=n;i++){
// cin>>x;
// a.push_back(x);//将输入的x放进vector中
// }
for(int i=0;i<n;i++){
cout<<a[i]<<endl;
}
return 0;
}
在c++11中有个快捷遍历输出:
//STL::C++11
#include<iostream>
#include<vector>
using namespace std;
int main(){
int n,x;
vector<int> a;
cin>>n;
for(int i=1;i<=n;i++){
cin>>x;
a.push_back(x);
}
cout<<a.size()<<endl;
// for(int i=0;i<a.size();i++){
// cout<<a[i]<<' ';
// }
for(int v:a){//C++11的专属:遍历vector的所有元素
cout<<v<<endl;
}
return 0;
}
在c++中加快输入和输出的速率的代码:
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
3 集合:
/t:集合(唯一性),有序性(从小到大)
#include<iostream>
#include<set>
using namespace std;
int main(){
set<int> st;
int n,x;
cin>>n;
for(int i=1;i<=n;i++){
cin>>x;
st.insert(x);//log(n)
}
//迭代器
for(int v:st){
cout<<"$: "<<v<<endl;//(log(n))
}
// set<int>::iterator it;//迭代器
// for(it=st.begin();it!=st.end();it++){
// cout<<(*it)<<endl;
// }
return 0;
}
也可放入vector中进行遍历输出;
//HDUOJ1412
#include<iostream>
#include<set>
#include<vector>
using namespace std;
int main(){
int n,m,x;
while(cin>>n>>m){
set<int> st;
for(int i=1;i<=n+m;i++){
cin>>x;
st.insert(x);
}
vector<int> ans;
for(int v:st){
ans.push_back(v);
}
int siz=(int)ans.size();
cout<<ans[0];
for(int i=1;i<siz;i++){
cout<<" "<<ans[i];
}
cout<<endl;
}
return 0;
}
接下里是无序的集合,本人目前尚且用不到;
//HDUOJ1412
#include<iostream>
#include<unordered_set>
#include<vector>
using namespace std;
int main(){
int n,m,x;
cin>>n;
unordered_set<int> st;
for(int i=1;i<=n;i++){
cin>>x;
st.insert(x);
}
for(auto v:st){
cout<<v<<endl;
}
return 0;
}