C언어 문자열 벡터
#include<iostream>
#include<string>
#include <vector>
#include <deque>
#include <list>
using namespace std;
/*
int main()
{
vector <int> num; // 정수형 벡터 num 선언
int value;
bool chk=true;
cout << "숫자(종료는 -1): ";
cin >> value;
while(value != -1)
{
num.push_back(value); // 벡터 num에 value 추가
cout << "숫자(종료는 -1): ";
cin >> value;
}
vector <int> :: iterator it;// 정수형 반복자 it 선언
it = num.begin(); // 첫번째 원소 가리킴
int highest = *it; // 첫번째 원소 값 저장
// 가장 큰 값 찾기
for(it = num.begin()+1; it < num.end() ; it++)
if(*it>highest)
highest- = *it;
cout << "최고 값은 " << highest << "입니다.\n";
}
*/
/*
int main()
{
vector <string> vec; // 문자열 저장하는 벡터 vec 선언
vec.push_back("봄"); // 벡터 vec에 "봄" 추가
vec.push_back("여름"); // 벡터 vec에 "가을" 추가
vec.push_back("겨울"); // 벡터 vec에 "겨울" 추가
vector<string>::iterator it; // 문자열 반복자 it 선언
for(int i=0;i<vec.size();i++)
cout << vec[i] << " ";
cout << endl;
vec.insert(vec.begin()+1,"여름"); // vec 두번째에 "여름" 추가
// 반복자 it 이용하여 vec원소 출력
for(it=vec.begin(); it != vec.end();++it)
cout << *it << "";
cout << endl;
}
*/
/*
class Movie
{
private:
string title;
double rating;
public:
Movie(string t="", double r=0.0) { title = t; rating = r; }
void print_movie() { cout << title << ": " << rating << endl; }
};
int main()
{
vector <Movie> movies; // Movie 벡터 movies 선언
Movie m("아이언맨",9.6); // 객체 m 생성 (아이언맨, 평점 9.6)
movies.push_back(m); // 객체 m을 벡터 movies에 추가
movies.push_back(Movie("오블리비언",9.2));
movies.push_back(Movie("전설의 주먹 ",8.7));
// ("오블리비언", 9.2)을 벡터 movies에 추가
// ("전설의 주먹", 8.7)을 벡터 movies에 추가
vector<Movie> :: iterator it; // Movie 반복자 it 선언
// 벡터 movies 에 있는 요소 출력
for (it = movies.begin(); it != movies.end(); ++it)
it->print_movie();
}
*/
/*
void main()
{
vector <int> v(3,10); //10으로 초기화한 4개의 원소 갖는 컨테이너 v
deque <int> dq(3,1);//10으로 초기화한 4개의 원소를 갖는 컨테이너 dq
v.push_back(200); // v에 200 추가
dq.push_back(200);// dq에 200 추가
int i;
for(i = 0 ; i < v.size() ; ++i)
cout << v[i] << " ";
cout << endl;
for(i = 0 ; i < dq.size() ; ++i)
cout << dq[i] << " ";
cout << endl;
}
*/
/*
void main()
{
deque<int> dq;
// dq에 10, 20, 30 추가
dq.push_back(10);
dq.push_back(20);
dq.push_back(30);
int i;
for(i = 0 ; i < dq.size() ; ++i)
cout << dq[i] << " ";
cout << endl;
dq.push_front(100); // 앞쪽에 100추가.
dq.push_front(200); // 앞쪽에 200추가.
for(i = 0 ; i < dq.size() ; ++i)
cout << dq[i] << " ";
cout << endl;
}
*/
/*
void main()
{
deque <int> dq; // 정수형 deque인 dq 선언
dq.push_back( 10 ); dq.push_back( 20 ); dq.push_back( 30 );
dq.push_back( 40 ); dq.push_back( 50 );
deque<int> ::iterator iter; // 정수형 deque의 반복자 iter 선언
for(iter = dq.begin(); iter != dq.end() ; ++iter) // 반복자 이용하여 원소 값 출력
cout << *iter<< " ";
cout << endl;
iter = dq.begin()+2; //반복자의 위치를 +3 만큼 이동
cout << *iter << endl;
iter = iter+2; //반복자의 위치를 +3 만큼 이동
cout << *iter << endl;
iter = iter-3; //반복자의 위치를 -3 만큼 이동
cout << *iter << endl;
}
*/
/*
void main( )
{
deque<int> dq;
deque<int>::iterator iter;
deque<int>::iterator iter2;
for(int i = 0 ; i < 5 ; i++)
dq.push_back((i+1)*10); // push_back() 이용하여 dq에 값 추가
for(iter = dq.begin(); iter !=dq.end() ; ++iter)
cout << *iter << ' ';
cout << endl;
iter = dq.begin()+2;
iter2 = dq.insert(iter,500); // 반복자 iter 위치에 500 삽입
cout << *iter2 << endl;
for(iter = dq.begin();iter = dq.end() ; ++iter)
cout << *iter << ' ';
cout << endl;
}
*/
/*
int main()
{
deque<int> dq;
dq.push_back(99);
dq.push_back(1);
dq.push_front(35);
dq.push_front(67);
// dq 뒤에 99, 1 추가
// dq 앞에 35, 67 추가
for(int i=0;i<dq.size() ;i++)
cout <<dq[i] << " "; // [] 연산자 사용
cout << endl;
dq.pop_back(); // dq의 뒤 원소 삭제
dq.pop_front(); // dq의 앞 원소 삭제
for(i=0;dq.size() ;i++)
cout << dq[i]<< " "; // [] 연산자 사용
cout << endl;
}
*/
/*
void main( )
{
list<int>it; // 정수형 리스트 lt 선언
// lt에 10, 20, 30 추가
it.push_back(10);
it.push_back(20);
it.push_back(30);
list<int>::iterator iter; // 정수형 리스트의 반복자 iter 선언
for(iter = it.begin(); iter !=it.end() ; ++iter)
cout << *iter << ' ';
cout << endl;
// lt의 앞에 100, 200 추가
it.push_front(100); it.push_front(200);
for(iter = it.begin(); iter !=it.end() ; ++iter)
cout << *iter << ' ';
cout << endl;
}
*/
/*
void main( )
{
list<int> lt;
lt.push_back(10); lt.push_back(20); lt.push_back(30);
lt.push_back(40); lt.push_back(50);
list<int>::iterator iter = lt.begin();
list<int>::iterator iter2;
++iter; ++iter;
iter2 = lt.erase(iter); //iter(30)의 원소 제거
for(iter = lt.begin(); iter != lt.end(); ++iter)
cout << *iter << ' ';
cout << endl;
cout << "iter2 : " << *iter2 << endl;
iter = iter2;
iter2 = lt.insert(iter,300); //iter2(40)이 가리키는 위치에 300 삽입
for(iter = lt.begin(); iter != lt.end(); ++iter)
cout << *iter << ' ';
cout << endl;
cout << "iter2 : " << *iter2 << endl;
}
*/
void main( )
{
list<int> lt;
lt.push_back(10); lt.push_back(20); lt.push_back(30);
lt.push_back(10); lt.push_back(40); lt.push_back(50);
lt.push_back(10); lt.push_back(10);
list<int>::iterator iter;
for(iter = lt.begin(); iter != lt.end(); ++iter)
cout << *iter << ' ';
cout << endl;
lt.remove(10); // 10 원소의 노드를 모두 제거
for(iter = lt.begin(); iter != lt.end(); ++iter)
cout << *iter << ' ';
cout << endl;
}